diff --git a/modules/openapi-generator/src/main/resources/python/test-requirements.mustache b/modules/openapi-generator/src/main/resources/python/test-requirements.mustache
index 31f8d94d99f740c5e2d556cabedc1743107c3c49..d9e3f20b53694f99d2949e4480319fba79763a45 100644
--- a/modules/openapi-generator/src/main/resources/python/test-requirements.mustache
+++ b/modules/openapi-generator/src/main/resources/python/test-requirements.mustache
@@ -3,8 +3,8 @@ coverage>=4.0.3
 nose>=1.3.7
 {{/asyncio}}
 {{#asyncio}}
-pytest>=3.3.1
-pytest-cov>=2.5.1
+pytest>=3.6.0
+pytest-cov>=2.6.1
 {{/asyncio}}
 pluggy>=0.3.1
 py>=1.4.31
diff --git a/modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml b/modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
index d4b466e5c7c0e048cc931d04a13eb71ba009cd52..835f696d0ff4597e64e8b35b30b9de5d57b765b7 100644
--- a/modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
+++ b/modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
@@ -964,6 +964,37 @@ paths:
       responses:
         '200':
           description: Success
+  /fake/create_xml_item:
+    post:
+      tags:
+        - fake
+      operationId: createXmlItem
+      summary: creates an XmlItem
+      description: this route creates an XmlItem
+      consumes:
+      - 'application/xml'
+      - 'application/xml; charset=utf-8'
+      - 'application/xml; charset=utf-16'
+      - 'text/xml'
+      - 'text/xml; charset=utf-8'
+      - 'text/xml; charset=utf-16'
+      produces:
+      - 'application/xml'
+      - 'application/xml; charset=utf-8'
+      - 'application/xml; charset=utf-16'
+      - 'text/xml'
+      - 'text/xml; charset=utf-8'
+      - 'text/xml; charset=utf-16'
+      parameters:
+        - in: body
+          name: XmlItem
+          description: XmlItem Body
+          required: true
+          schema:
+            $ref: '#/definitions/XmlItem'
+      responses:
+        200:
+          description: successful operation
   /another-fake/dummy:
     patch:
       tags:
@@ -1634,3 +1665,182 @@ definitions:
             - 1
             - 2
             - 3
+  XmlItem:
+    type: object
+    xml:
+      namespace: http://a.com/schema
+      prefix: pre
+    properties:
+      attribute_string:
+        type: string
+        example: string
+        xml:
+          attribute: true
+      attribute_number:
+        type: number
+        example: 1.234
+        xml:
+          attribute: true
+      attribute_integer:
+        type: integer
+        example: -2
+        xml:
+          attribute: true
+      attribute_boolean:
+        type: boolean
+        example: true
+        xml:
+          attribute: true
+      wrapped_array:
+        type: array
+        xml:
+          wrapped: true
+        items:
+          type: integer
+      name_string:
+        type: string
+        example: string
+        xml:
+          name: xml_name_string
+      name_number:
+        type: number
+        example: 1.234
+        xml:
+          name: xml_name_number
+      name_integer:
+        type: integer
+        example: -2
+        xml:
+          name: xml_name_integer
+      name_boolean:
+        type: boolean
+        example: true
+        xml:
+          name: xml_name_boolean
+      name_array:
+        type: array
+        items:
+          type: integer
+          xml:
+            name: xml_name_array_item
+      name_wrapped_array:
+        type: array
+        xml:
+          wrapped: true
+          name: xml_name_wrapped_array
+        items:
+          type: integer
+          xml:
+            name: xml_name_wrapped_array_item
+      prefix_string:
+        type: string
+        example: string
+        xml:
+          prefix: ab
+      prefix_number:
+        type: number
+        example: 1.234
+        xml:
+          prefix: cd
+      prefix_integer:
+        type: integer
+        example: -2
+        xml:
+          prefix: ef
+      prefix_boolean:
+        type: boolean
+        example: true
+        xml:
+          prefix: gh
+      prefix_array:
+        type: array
+        items:
+          type: integer
+          xml:
+            prefix: ij
+      prefix_wrapped_array:
+        type: array
+        xml:
+          wrapped: true
+          prefix: kl
+        items:
+          type: integer
+          xml:
+            prefix: mn
+      namespace_string:
+        type: string
+        example: string
+        xml:
+          namespace: http://a.com/schema
+      namespace_number:
+        type: number
+        example: 1.234
+        xml:
+          namespace: http://b.com/schema
+      namespace_integer:
+        type: integer
+        example: -2
+        xml:
+          namespace: http://c.com/schema
+      namespace_boolean:
+        type: boolean
+        example: true
+        xml:
+          namespace: http://d.com/schema
+      namespace_array:
+        type: array
+        items:
+          type: integer
+          xml:
+            namespace: http://e.com/schema
+      namespace_wrapped_array:
+        type: array
+        xml:
+          wrapped: true
+          namespace: http://f.com/schema
+        items:
+          type: integer
+          xml:
+            namespace: http://g.com/schema
+      prefix_ns_string:
+        type: string
+        example: string
+        xml:
+          namespace: http://a.com/schema
+          prefix: a
+      prefix_ns_number:
+        type: number
+        example: 1.234
+        xml:
+          namespace: http://b.com/schema
+          prefix: b
+      prefix_ns_integer:
+        type: integer
+        example: -2
+        xml:
+          namespace: http://c.com/schema
+          prefix: c
+      prefix_ns_boolean:
+        type: boolean
+        example: true
+        xml:
+          namespace: http://d.com/schema
+          prefix: d
+      prefix_ns_array:
+        type: array
+        items:
+          type: integer
+          xml:
+            namespace: http://e.com/schema
+            prefix: e
+      prefix_ns_wrapped_array:
+        type: array
+        xml:
+          wrapped: true
+          namespace: http://f.com/schema
+          prefix: f
+        items:
+          type: integer
+          xml:
+            namespace: http://g.com/schema
+            prefix: g
diff --git a/samples/client/petstore/csharp/OpenAPIClient/README.md b/samples/client/petstore/csharp/OpenAPIClient/README.md
index b5d79ff2d9600d75277394abccf8ce2b3fc6d3c0..98c7c36a6ec3c857fa3ec0a7b86cc761ad70de78 100644
--- a/samples/client/petstore/csharp/OpenAPIClient/README.md
+++ b/samples/client/petstore/csharp/OpenAPIClient/README.md
@@ -97,6 +97,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 Class | Method | HTTP request | Description
 ------------ | ------------- | ------------- | -------------
 *AnotherFakeApi* | [**Call123TestSpecialTags**](docs/AnotherFakeApi.md#call123testspecialtags) | **PATCH** /another-fake/dummy | To test special tags
+*FakeApi* | [**CreateXmlItem**](docs/FakeApi.md#createxmlitem) | **POST** /fake/create_xml_item | creates an XmlItem
 *FakeApi* | [**FakeOuterBooleanSerialize**](docs/FakeApi.md#fakeouterbooleanserialize) | **POST** /fake/outer/boolean | 
 *FakeApi* | [**FakeOuterCompositeSerialize**](docs/FakeApi.md#fakeoutercompositeserialize) | **POST** /fake/outer/composite | 
 *FakeApi* | [**FakeOuterNumberSerialize**](docs/FakeApi.md#fakeouternumberserialize) | **POST** /fake/outer/number | 
@@ -172,6 +173,7 @@ Class | Method | HTTP request | Description
  - [Model.TypeHolderDefault](docs/TypeHolderDefault.md)
  - [Model.TypeHolderExample](docs/TypeHolderExample.md)
  - [Model.User](docs/User.md)
+ - [Model.XmlItem](docs/XmlItem.md)
 
 
 <a name="documentation-for-authorization"></a>
diff --git a/samples/client/petstore/csharp/OpenAPIClient/docs/FakeApi.md b/samples/client/petstore/csharp/OpenAPIClient/docs/FakeApi.md
index c2d06117726e07ec62223819003f8c1f7b0932bc..76a06f95e7b69d24d09740164d6b090a4b47b1a2 100644
--- a/samples/client/petstore/csharp/OpenAPIClient/docs/FakeApi.md
+++ b/samples/client/petstore/csharp/OpenAPIClient/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**CreateXmlItem**](FakeApi.md#createxmlitem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**FakeOuterBooleanSerialize**](FakeApi.md#fakeouterbooleanserialize) | **POST** /fake/outer/boolean | 
 [**FakeOuterCompositeSerialize**](FakeApi.md#fakeoutercompositeserialize) | **POST** /fake/outer/composite | 
 [**FakeOuterNumberSerialize**](FakeApi.md#fakeouternumberserialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,66 @@ Method | HTTP request | Description
 [**TestJsonFormData**](FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createxmlitem"></a>
+# **CreateXmlItem**
+> void CreateXmlItem (XmlItem xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```csharp
+using System;
+using System.Diagnostics;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+
+namespace Example
+{
+    public class CreateXmlItemExample
+    {
+        public void main()
+        {
+            var apiInstance = new FakeApi();
+            var xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+
+            try
+            {
+                // creates an XmlItem
+                apiInstance.CreateXmlItem(xmlItem);
+            }
+            catch (Exception e)
+            {
+                Debug.Print("Exception when calling FakeApi.CreateXmlItem: " + e.Message );
+            }
+        }
+    }
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body | 
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
 <a name="fakeouterbooleanserialize"></a>
 # **FakeOuterBooleanSerialize**
 > bool? FakeOuterBooleanSerialize (bool? body = null)
diff --git a/samples/client/petstore/csharp/OpenAPIClient/docs/XmlItem.md b/samples/client/petstore/csharp/OpenAPIClient/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..b0193213bd2e710fc207e93e7543ccf2c9a88e08
--- /dev/null
+++ b/samples/client/petstore/csharp/OpenAPIClient/docs/XmlItem.md
@@ -0,0 +1,37 @@
+# Org.OpenAPITools.Model.XmlItem
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**AttributeString** | **string** |  | [optional] 
+**AttributeNumber** | **decimal?** |  | [optional] 
+**AttributeInteger** | **int?** |  | [optional] 
+**AttributeBoolean** | **bool?** |  | [optional] 
+**WrappedArray** | **List&lt;int?&gt;** |  | [optional] 
+**NameString** | **string** |  | [optional] 
+**NameNumber** | **decimal?** |  | [optional] 
+**NameInteger** | **int?** |  | [optional] 
+**NameBoolean** | **bool?** |  | [optional] 
+**NameArray** | **List&lt;int?&gt;** |  | [optional] 
+**NameWrappedArray** | **List&lt;int?&gt;** |  | [optional] 
+**PrefixString** | **string** |  | [optional] 
+**PrefixNumber** | **decimal?** |  | [optional] 
+**PrefixInteger** | **int?** |  | [optional] 
+**PrefixBoolean** | **bool?** |  | [optional] 
+**PrefixArray** | **List&lt;int?&gt;** |  | [optional] 
+**PrefixWrappedArray** | **List&lt;int?&gt;** |  | [optional] 
+**NamespaceString** | **string** |  | [optional] 
+**NamespaceNumber** | **decimal?** |  | [optional] 
+**NamespaceInteger** | **int?** |  | [optional] 
+**NamespaceBoolean** | **bool?** |  | [optional] 
+**NamespaceArray** | **List&lt;int?&gt;** |  | [optional] 
+**NamespaceWrappedArray** | **List&lt;int?&gt;** |  | [optional] 
+**PrefixNsString** | **string** |  | [optional] 
+**PrefixNsNumber** | **decimal?** |  | [optional] 
+**PrefixNsInteger** | **int?** |  | [optional] 
+**PrefixNsBoolean** | **bool?** |  | [optional] 
+**PrefixNsArray** | **List&lt;int?&gt;** |  | [optional] 
+**PrefixNsWrappedArray** | **List&lt;int?&gt;** |  | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools.Test/Model/XmlItemTests.cs b/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools.Test/Model/XmlItemTests.cs
new file mode 100644
index 0000000000000000000000000000000000000000..cbed089eea0461b00fd2d1a1458e1240d3de82e0
--- /dev/null
+++ b/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools.Test/Model/XmlItemTests.cs
@@ -0,0 +1,304 @@
+/* 
+ * OpenAPI Petstore
+ *
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ * Generated by: https://github.com/openapitools/openapi-generator.git
+ */
+
+
+using NUnit.Framework;
+
+using System;
+using System.Linq;
+using System.IO;
+using System.Collections.Generic;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Model;
+using Org.OpenAPITools.Client;
+using System.Reflection;
+using Newtonsoft.Json;
+
+namespace Org.OpenAPITools.Test
+{
+    /// <summary>
+    ///  Class for testing XmlItem
+    /// </summary>
+    /// <remarks>
+    /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech).
+    /// Please update the test case below to test the model.
+    /// </remarks>
+    [TestFixture]
+    public class XmlItemTests
+    {
+        // TODO uncomment below to declare an instance variable for XmlItem
+        //private XmlItem instance;
+
+        /// <summary>
+        /// Setup before each test
+        /// </summary>
+        [SetUp]
+        public void Init()
+        {
+            // TODO uncomment below to create an instance of XmlItem
+            //instance = new XmlItem();
+        }
+
+        /// <summary>
+        /// Clean up after each test
+        /// </summary>
+        [TearDown]
+        public void Cleanup()
+        {
+
+        }
+
+        /// <summary>
+        /// Test an instance of XmlItem
+        /// </summary>
+        [Test]
+        public void XmlItemInstanceTest()
+        {
+            // TODO uncomment below to test "IsInstanceOfType" XmlItem
+            //Assert.IsInstanceOfType<XmlItem> (instance, "variable 'instance' is a XmlItem");
+        }
+
+
+        /// <summary>
+        /// Test the property 'AttributeString'
+        /// </summary>
+        [Test]
+        public void AttributeStringTest()
+        {
+            // TODO unit test for the property 'AttributeString'
+        }
+        /// <summary>
+        /// Test the property 'AttributeNumber'
+        /// </summary>
+        [Test]
+        public void AttributeNumberTest()
+        {
+            // TODO unit test for the property 'AttributeNumber'
+        }
+        /// <summary>
+        /// Test the property 'AttributeInteger'
+        /// </summary>
+        [Test]
+        public void AttributeIntegerTest()
+        {
+            // TODO unit test for the property 'AttributeInteger'
+        }
+        /// <summary>
+        /// Test the property 'AttributeBoolean'
+        /// </summary>
+        [Test]
+        public void AttributeBooleanTest()
+        {
+            // TODO unit test for the property 'AttributeBoolean'
+        }
+        /// <summary>
+        /// Test the property 'WrappedArray'
+        /// </summary>
+        [Test]
+        public void WrappedArrayTest()
+        {
+            // TODO unit test for the property 'WrappedArray'
+        }
+        /// <summary>
+        /// Test the property 'NameString'
+        /// </summary>
+        [Test]
+        public void NameStringTest()
+        {
+            // TODO unit test for the property 'NameString'
+        }
+        /// <summary>
+        /// Test the property 'NameNumber'
+        /// </summary>
+        [Test]
+        public void NameNumberTest()
+        {
+            // TODO unit test for the property 'NameNumber'
+        }
+        /// <summary>
+        /// Test the property 'NameInteger'
+        /// </summary>
+        [Test]
+        public void NameIntegerTest()
+        {
+            // TODO unit test for the property 'NameInteger'
+        }
+        /// <summary>
+        /// Test the property 'NameBoolean'
+        /// </summary>
+        [Test]
+        public void NameBooleanTest()
+        {
+            // TODO unit test for the property 'NameBoolean'
+        }
+        /// <summary>
+        /// Test the property 'NameArray'
+        /// </summary>
+        [Test]
+        public void NameArrayTest()
+        {
+            // TODO unit test for the property 'NameArray'
+        }
+        /// <summary>
+        /// Test the property 'NameWrappedArray'
+        /// </summary>
+        [Test]
+        public void NameWrappedArrayTest()
+        {
+            // TODO unit test for the property 'NameWrappedArray'
+        }
+        /// <summary>
+        /// Test the property 'PrefixString'
+        /// </summary>
+        [Test]
+        public void PrefixStringTest()
+        {
+            // TODO unit test for the property 'PrefixString'
+        }
+        /// <summary>
+        /// Test the property 'PrefixNumber'
+        /// </summary>
+        [Test]
+        public void PrefixNumberTest()
+        {
+            // TODO unit test for the property 'PrefixNumber'
+        }
+        /// <summary>
+        /// Test the property 'PrefixInteger'
+        /// </summary>
+        [Test]
+        public void PrefixIntegerTest()
+        {
+            // TODO unit test for the property 'PrefixInteger'
+        }
+        /// <summary>
+        /// Test the property 'PrefixBoolean'
+        /// </summary>
+        [Test]
+        public void PrefixBooleanTest()
+        {
+            // TODO unit test for the property 'PrefixBoolean'
+        }
+        /// <summary>
+        /// Test the property 'PrefixArray'
+        /// </summary>
+        [Test]
+        public void PrefixArrayTest()
+        {
+            // TODO unit test for the property 'PrefixArray'
+        }
+        /// <summary>
+        /// Test the property 'PrefixWrappedArray'
+        /// </summary>
+        [Test]
+        public void PrefixWrappedArrayTest()
+        {
+            // TODO unit test for the property 'PrefixWrappedArray'
+        }
+        /// <summary>
+        /// Test the property 'NamespaceString'
+        /// </summary>
+        [Test]
+        public void NamespaceStringTest()
+        {
+            // TODO unit test for the property 'NamespaceString'
+        }
+        /// <summary>
+        /// Test the property 'NamespaceNumber'
+        /// </summary>
+        [Test]
+        public void NamespaceNumberTest()
+        {
+            // TODO unit test for the property 'NamespaceNumber'
+        }
+        /// <summary>
+        /// Test the property 'NamespaceInteger'
+        /// </summary>
+        [Test]
+        public void NamespaceIntegerTest()
+        {
+            // TODO unit test for the property 'NamespaceInteger'
+        }
+        /// <summary>
+        /// Test the property 'NamespaceBoolean'
+        /// </summary>
+        [Test]
+        public void NamespaceBooleanTest()
+        {
+            // TODO unit test for the property 'NamespaceBoolean'
+        }
+        /// <summary>
+        /// Test the property 'NamespaceArray'
+        /// </summary>
+        [Test]
+        public void NamespaceArrayTest()
+        {
+            // TODO unit test for the property 'NamespaceArray'
+        }
+        /// <summary>
+        /// Test the property 'NamespaceWrappedArray'
+        /// </summary>
+        [Test]
+        public void NamespaceWrappedArrayTest()
+        {
+            // TODO unit test for the property 'NamespaceWrappedArray'
+        }
+        /// <summary>
+        /// Test the property 'PrefixNamespaceString'
+        /// </summary>
+        [Test]
+        public void PrefixNamespaceStringTest()
+        {
+            // TODO unit test for the property 'PrefixNamespaceString'
+        }
+        /// <summary>
+        /// Test the property 'PrefixNamespaceNumber'
+        /// </summary>
+        [Test]
+        public void PrefixNamespaceNumberTest()
+        {
+            // TODO unit test for the property 'PrefixNamespaceNumber'
+        }
+        /// <summary>
+        /// Test the property 'PrefixNamespaceInteger'
+        /// </summary>
+        [Test]
+        public void PrefixNamespaceIntegerTest()
+        {
+            // TODO unit test for the property 'PrefixNamespaceInteger'
+        }
+        /// <summary>
+        /// Test the property 'PrefixNamespaceBoolean'
+        /// </summary>
+        [Test]
+        public void PrefixNamespaceBooleanTest()
+        {
+            // TODO unit test for the property 'PrefixNamespaceBoolean'
+        }
+        /// <summary>
+        /// Test the property 'PrefixNamespaceArray'
+        /// </summary>
+        [Test]
+        public void PrefixNamespaceArrayTest()
+        {
+            // TODO unit test for the property 'PrefixNamespaceArray'
+        }
+        /// <summary>
+        /// Test the property 'PrefixNamespaceWrappedArray'
+        /// </summary>
+        [Test]
+        public void PrefixNamespaceWrappedArrayTest()
+        {
+            // TODO unit test for the property 'PrefixNamespaceWrappedArray'
+        }
+
+    }
+
+}
diff --git a/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs b/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs
index d8b3e598376a9e5ed82b9fd58bd069ec152b36d2..bfc1c9797e625343b773b9db93bc577b01cc847d 100644
--- a/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs
+++ b/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Api/FakeApi.cs
@@ -25,6 +25,27 @@ namespace Org.OpenAPITools.Api
     {
         #region Synchronous Operations
         /// <summary>
+        /// creates an XmlItem
+        /// </summary>
+        /// <remarks>
+        /// this route creates an XmlItem
+        /// </remarks>
+        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
+        /// <param name="xmlItem">XmlItem Body</param>
+        /// <returns></returns>
+        void CreateXmlItem (XmlItem xmlItem);
+
+        /// <summary>
+        /// creates an XmlItem
+        /// </summary>
+        /// <remarks>
+        /// this route creates an XmlItem
+        /// </remarks>
+        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
+        /// <param name="xmlItem">XmlItem Body</param>
+        /// <returns>ApiResponse of Object(void)</returns>
+        ApiResponse<Object> CreateXmlItemWithHttpInfo (XmlItem xmlItem);
+        /// <summary>
         /// 
         /// </summary>
         /// <remarks>
@@ -333,6 +354,27 @@ namespace Org.OpenAPITools.Api
         #endregion Synchronous Operations
         #region Asynchronous Operations
         /// <summary>
+        /// creates an XmlItem
+        /// </summary>
+        /// <remarks>
+        /// this route creates an XmlItem
+        /// </remarks>
+        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
+        /// <param name="xmlItem">XmlItem Body</param>
+        /// <returns>Task of void</returns>
+        System.Threading.Tasks.Task CreateXmlItemAsync (XmlItem xmlItem);
+
+        /// <summary>
+        /// creates an XmlItem
+        /// </summary>
+        /// <remarks>
+        /// this route creates an XmlItem
+        /// </remarks>
+        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
+        /// <param name="xmlItem">XmlItem Body</param>
+        /// <returns>Task of ApiResponse</returns>
+        System.Threading.Tasks.Task<ApiResponse<Object>> CreateXmlItemAsyncWithHttpInfo (XmlItem xmlItem);
+        /// <summary>
         /// 
         /// </summary>
         /// <remarks>
@@ -749,6 +791,161 @@ namespace Org.OpenAPITools.Api
             this.Configuration.AddDefaultHeader(key, value);
         }
 
+        /// <summary>
+        /// creates an XmlItem this route creates an XmlItem
+        /// </summary>
+        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
+        /// <param name="xmlItem">XmlItem Body</param>
+        /// <returns></returns>
+        public void CreateXmlItem (XmlItem xmlItem)
+        {
+             CreateXmlItemWithHttpInfo(xmlItem);
+        }
+
+        /// <summary>
+        /// creates an XmlItem this route creates an XmlItem
+        /// </summary>
+        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
+        /// <param name="xmlItem">XmlItem Body</param>
+        /// <returns>ApiResponse of Object(void)</returns>
+        public ApiResponse<Object> CreateXmlItemWithHttpInfo (XmlItem xmlItem)
+        {
+            // verify the required parameter 'xmlItem' is set
+            if (xmlItem == null)
+                throw new ApiException(400, "Missing required parameter 'xmlItem' when calling FakeApi->CreateXmlItem");
+
+            var localVarPath = "/fake/create_xml_item";
+            var localVarPathParams = new Dictionary<String, String>();
+            var localVarQueryParams = new List<KeyValuePair<String, String>>();
+            var localVarHeaderParams = new Dictionary<String, String>(this.Configuration.DefaultHeader);
+            var localVarFormParams = new Dictionary<String, String>();
+            var localVarFileParams = new Dictionary<String, FileParameter>();
+            Object localVarPostBody = null;
+
+            // to determine the Content-Type header
+            String[] localVarHttpContentTypes = new String[] {
+                "application/xml", 
+                "application/xml; charset=utf-8", 
+                "application/xml; charset=utf-16", 
+                "text/xml", 
+                "text/xml; charset=utf-8", 
+                "text/xml; charset=utf-16"
+            };
+            String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes);
+
+            // to determine the Accept header
+            String[] localVarHttpHeaderAccepts = new String[] {
+            };
+            String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts);
+            if (localVarHttpHeaderAccept != null)
+                localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept);
+
+            if (xmlItem != null && xmlItem.GetType() != typeof(byte[]))
+            {
+                localVarPostBody = this.Configuration.ApiClient.Serialize(xmlItem); // http body (model) parameter
+            }
+            else
+            {
+                localVarPostBody = xmlItem; // byte array
+            }
+
+
+            // make the HTTP request
+            IRestResponse localVarResponse = (IRestResponse) this.Configuration.ApiClient.CallApi(localVarPath,
+                Method.POST, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams,
+                localVarPathParams, localVarHttpContentType);
+
+            int localVarStatusCode = (int) localVarResponse.StatusCode;
+
+            if (ExceptionFactory != null)
+            {
+                Exception exception = ExceptionFactory("CreateXmlItem", localVarResponse);
+                if (exception != null) throw exception;
+            }
+
+            return new ApiResponse<Object>(localVarStatusCode,
+                localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()),
+                null);
+        }
+
+        /// <summary>
+        /// creates an XmlItem this route creates an XmlItem
+        /// </summary>
+        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
+        /// <param name="xmlItem">XmlItem Body</param>
+        /// <returns>Task of void</returns>
+        public async System.Threading.Tasks.Task CreateXmlItemAsync (XmlItem xmlItem)
+        {
+             await CreateXmlItemAsyncWithHttpInfo(xmlItem);
+
+        }
+
+        /// <summary>
+        /// creates an XmlItem this route creates an XmlItem
+        /// </summary>
+        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
+        /// <param name="xmlItem">XmlItem Body</param>
+        /// <returns>Task of ApiResponse</returns>
+        public async System.Threading.Tasks.Task<ApiResponse<Object>> CreateXmlItemAsyncWithHttpInfo (XmlItem xmlItem)
+        {
+            // verify the required parameter 'xmlItem' is set
+            if (xmlItem == null)
+                throw new ApiException(400, "Missing required parameter 'xmlItem' when calling FakeApi->CreateXmlItem");
+
+            var localVarPath = "/fake/create_xml_item";
+            var localVarPathParams = new Dictionary<String, String>();
+            var localVarQueryParams = new List<KeyValuePair<String, String>>();
+            var localVarHeaderParams = new Dictionary<String, String>(this.Configuration.DefaultHeader);
+            var localVarFormParams = new Dictionary<String, String>();
+            var localVarFileParams = new Dictionary<String, FileParameter>();
+            Object localVarPostBody = null;
+
+            // to determine the Content-Type header
+            String[] localVarHttpContentTypes = new String[] {
+                "application/xml", 
+                "application/xml; charset=utf-8", 
+                "application/xml; charset=utf-16", 
+                "text/xml", 
+                "text/xml; charset=utf-8", 
+                "text/xml; charset=utf-16"
+            };
+            String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes);
+
+            // to determine the Accept header
+            String[] localVarHttpHeaderAccepts = new String[] {
+            };
+            String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts);
+            if (localVarHttpHeaderAccept != null)
+                localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept);
+
+            if (xmlItem != null && xmlItem.GetType() != typeof(byte[]))
+            {
+                localVarPostBody = this.Configuration.ApiClient.Serialize(xmlItem); // http body (model) parameter
+            }
+            else
+            {
+                localVarPostBody = xmlItem; // byte array
+            }
+
+
+            // make the HTTP request
+            IRestResponse localVarResponse = (IRestResponse) await this.Configuration.ApiClient.CallApiAsync(localVarPath,
+                Method.POST, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams,
+                localVarPathParams, localVarHttpContentType);
+
+            int localVarStatusCode = (int) localVarResponse.StatusCode;
+
+            if (ExceptionFactory != null)
+            {
+                Exception exception = ExceptionFactory("CreateXmlItem", localVarResponse);
+                if (exception != null) throw exception;
+            }
+
+            return new ApiResponse<Object>(localVarStatusCode,
+                localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()),
+                null);
+        }
+
         /// <summary>
         ///  Test serialization of outer boolean types
         /// </summary>
diff --git a/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Model/XmlItem.cs b/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Model/XmlItem.cs
new file mode 100644
index 0000000000000000000000000000000000000000..2ea201abda0e2404c0a6ef04649924e1b0d457e4
--- /dev/null
+++ b/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools/Model/XmlItem.cs
@@ -0,0 +1,572 @@
+/* 
+ * OpenAPI Petstore
+ *
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ * Generated by: https://github.com/openapitools/openapi-generator.git
+ */
+
+using System;
+using System.Linq;
+using System.IO;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Runtime.Serialization;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using System.ComponentModel.DataAnnotations;
+using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter;
+
+namespace Org.OpenAPITools.Model
+{
+    /// <summary>
+    /// XmlItem
+    /// </summary>
+    [DataContract]
+    public partial class XmlItem :  IEquatable<XmlItem>, IValidatableObject
+    {
+        /// <summary>
+        /// Initializes a new instance of the <see cref="XmlItem" /> class.
+        /// </summary>
+        /// <param name="attributeString">attributeString.</param>
+        /// <param name="attributeNumber">attributeNumber.</param>
+        /// <param name="attributeInteger">attributeInteger.</param>
+        /// <param name="attributeBoolean">attributeBoolean.</param>
+        /// <param name="wrappedArray">wrappedArray.</param>
+        /// <param name="nameString">nameString.</param>
+        /// <param name="nameNumber">nameNumber.</param>
+        /// <param name="nameInteger">nameInteger.</param>
+        /// <param name="nameBoolean">nameBoolean.</param>
+        /// <param name="nameArray">nameArray.</param>
+        /// <param name="nameWrappedArray">nameWrappedArray.</param>
+        /// <param name="prefixString">prefixString.</param>
+        /// <param name="prefixNumber">prefixNumber.</param>
+        /// <param name="prefixInteger">prefixInteger.</param>
+        /// <param name="prefixBoolean">prefixBoolean.</param>
+        /// <param name="prefixArray">prefixArray.</param>
+        /// <param name="prefixWrappedArray">prefixWrappedArray.</param>
+        /// <param name="namespaceString">namespaceString.</param>
+        /// <param name="namespaceNumber">namespaceNumber.</param>
+        /// <param name="namespaceInteger">namespaceInteger.</param>
+        /// <param name="namespaceBoolean">namespaceBoolean.</param>
+        /// <param name="namespaceArray">namespaceArray.</param>
+        /// <param name="namespaceWrappedArray">namespaceWrappedArray.</param>
+        /// <param name="prefixNsString">prefixNsString.</param>
+        /// <param name="prefixNsNumber">prefixNsNumber.</param>
+        /// <param name="prefixNsInteger">prefixNsInteger.</param>
+        /// <param name="prefixNsBoolean">prefixNsBoolean.</param>
+        /// <param name="prefixNsArray">prefixNsArray.</param>
+        /// <param name="prefixNsWrappedArray">prefixNsWrappedArray.</param>
+        public XmlItem(string attributeString = default(string), decimal? attributeNumber = default(decimal?), int? attributeInteger = default(int?), bool? attributeBoolean = default(bool?), List<int?> wrappedArray = default(List<int?>), string nameString = default(string), decimal? nameNumber = default(decimal?), int? nameInteger = default(int?), bool? nameBoolean = default(bool?), List<int?> nameArray = default(List<int?>), List<int?> nameWrappedArray = default(List<int?>), string prefixString = default(string), decimal? prefixNumber = default(decimal?), int? prefixInteger = default(int?), bool? prefixBoolean = default(bool?), List<int?> prefixArray = default(List<int?>), List<int?> prefixWrappedArray = default(List<int?>), string namespaceString = default(string), decimal? namespaceNumber = default(decimal?), int? namespaceInteger = default(int?), bool? namespaceBoolean = default(bool?), List<int?> namespaceArray = default(List<int?>), List<int?> namespaceWrappedArray = default(List<int?>), string prefixNsString = default(string), decimal? prefixNsNumber = default(decimal?), int? prefixNsInteger = default(int?), bool? prefixNsBoolean = default(bool?), List<int?> prefixNsArray = default(List<int?>), List<int?> prefixNsWrappedArray = default(List<int?>))
+        {
+            this.AttributeString = attributeString;
+            this.AttributeNumber = attributeNumber;
+            this.AttributeInteger = attributeInteger;
+            this.AttributeBoolean = attributeBoolean;
+            this.WrappedArray = wrappedArray;
+            this.NameString = nameString;
+            this.NameNumber = nameNumber;
+            this.NameInteger = nameInteger;
+            this.NameBoolean = nameBoolean;
+            this.NameArray = nameArray;
+            this.NameWrappedArray = nameWrappedArray;
+            this.PrefixString = prefixString;
+            this.PrefixNumber = prefixNumber;
+            this.PrefixInteger = prefixInteger;
+            this.PrefixBoolean = prefixBoolean;
+            this.PrefixArray = prefixArray;
+            this.PrefixWrappedArray = prefixWrappedArray;
+            this.NamespaceString = namespaceString;
+            this.NamespaceNumber = namespaceNumber;
+            this.NamespaceInteger = namespaceInteger;
+            this.NamespaceBoolean = namespaceBoolean;
+            this.NamespaceArray = namespaceArray;
+            this.NamespaceWrappedArray = namespaceWrappedArray;
+            this.PrefixNsString = prefixNsString;
+            this.PrefixNsNumber = prefixNsNumber;
+            this.PrefixNsInteger = prefixNsInteger;
+            this.PrefixNsBoolean = prefixNsBoolean;
+            this.PrefixNsArray = prefixNsArray;
+            this.PrefixNsWrappedArray = prefixNsWrappedArray;
+        }
+        
+        /// <summary>
+        /// Gets or Sets AttributeString
+        /// </summary>
+        [DataMember(Name="attribute_string", EmitDefaultValue=false)]
+        public string AttributeString { get; set; }
+
+        /// <summary>
+        /// Gets or Sets AttributeNumber
+        /// </summary>
+        [DataMember(Name="attribute_number", EmitDefaultValue=false)]
+        public decimal? AttributeNumber { get; set; }
+
+        /// <summary>
+        /// Gets or Sets AttributeInteger
+        /// </summary>
+        [DataMember(Name="attribute_integer", EmitDefaultValue=false)]
+        public int? AttributeInteger { get; set; }
+
+        /// <summary>
+        /// Gets or Sets AttributeBoolean
+        /// </summary>
+        [DataMember(Name="attribute_boolean", EmitDefaultValue=false)]
+        public bool? AttributeBoolean { get; set; }
+
+        /// <summary>
+        /// Gets or Sets WrappedArray
+        /// </summary>
+        [DataMember(Name="wrapped_array", EmitDefaultValue=false)]
+        public List<int?> WrappedArray { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NameString
+        /// </summary>
+        [DataMember(Name="name_string", EmitDefaultValue=false)]
+        public string NameString { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NameNumber
+        /// </summary>
+        [DataMember(Name="name_number", EmitDefaultValue=false)]
+        public decimal? NameNumber { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NameInteger
+        /// </summary>
+        [DataMember(Name="name_integer", EmitDefaultValue=false)]
+        public int? NameInteger { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NameBoolean
+        /// </summary>
+        [DataMember(Name="name_boolean", EmitDefaultValue=false)]
+        public bool? NameBoolean { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NameArray
+        /// </summary>
+        [DataMember(Name="name_array", EmitDefaultValue=false)]
+        public List<int?> NameArray { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NameWrappedArray
+        /// </summary>
+        [DataMember(Name="name_wrapped_array", EmitDefaultValue=false)]
+        public List<int?> NameWrappedArray { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixString
+        /// </summary>
+        [DataMember(Name="prefix_string", EmitDefaultValue=false)]
+        public string PrefixString { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixNumber
+        /// </summary>
+        [DataMember(Name="prefix_number", EmitDefaultValue=false)]
+        public decimal? PrefixNumber { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixInteger
+        /// </summary>
+        [DataMember(Name="prefix_integer", EmitDefaultValue=false)]
+        public int? PrefixInteger { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixBoolean
+        /// </summary>
+        [DataMember(Name="prefix_boolean", EmitDefaultValue=false)]
+        public bool? PrefixBoolean { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixArray
+        /// </summary>
+        [DataMember(Name="prefix_array", EmitDefaultValue=false)]
+        public List<int?> PrefixArray { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixWrappedArray
+        /// </summary>
+        [DataMember(Name="prefix_wrapped_array", EmitDefaultValue=false)]
+        public List<int?> PrefixWrappedArray { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NamespaceString
+        /// </summary>
+        [DataMember(Name="namespace_string", EmitDefaultValue=false)]
+        public string NamespaceString { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NamespaceNumber
+        /// </summary>
+        [DataMember(Name="namespace_number", EmitDefaultValue=false)]
+        public decimal? NamespaceNumber { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NamespaceInteger
+        /// </summary>
+        [DataMember(Name="namespace_integer", EmitDefaultValue=false)]
+        public int? NamespaceInteger { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NamespaceBoolean
+        /// </summary>
+        [DataMember(Name="namespace_boolean", EmitDefaultValue=false)]
+        public bool? NamespaceBoolean { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NamespaceArray
+        /// </summary>
+        [DataMember(Name="namespace_array", EmitDefaultValue=false)]
+        public List<int?> NamespaceArray { get; set; }
+
+        /// <summary>
+        /// Gets or Sets NamespaceWrappedArray
+        /// </summary>
+        [DataMember(Name="namespace_wrapped_array", EmitDefaultValue=false)]
+        public List<int?> NamespaceWrappedArray { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixNsString
+        /// </summary>
+        [DataMember(Name="prefix_ns_string", EmitDefaultValue=false)]
+        public string PrefixNsString { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixNsNumber
+        /// </summary>
+        [DataMember(Name="prefix_ns_number", EmitDefaultValue=false)]
+        public decimal? PrefixNsNumber { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixNsInteger
+        /// </summary>
+        [DataMember(Name="prefix_ns_integer", EmitDefaultValue=false)]
+        public int? PrefixNsInteger { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixNsBoolean
+        /// </summary>
+        [DataMember(Name="prefix_ns_boolean", EmitDefaultValue=false)]
+        public bool? PrefixNsBoolean { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixNsArray
+        /// </summary>
+        [DataMember(Name="prefix_ns_array", EmitDefaultValue=false)]
+        public List<int?> PrefixNsArray { get; set; }
+
+        /// <summary>
+        /// Gets or Sets PrefixNsWrappedArray
+        /// </summary>
+        [DataMember(Name="prefix_ns_wrapped_array", EmitDefaultValue=false)]
+        public List<int?> PrefixNsWrappedArray { get; set; }
+
+        /// <summary>
+        /// Returns the string presentation of the object
+        /// </summary>
+        /// <returns>String presentation of the object</returns>
+        public override string ToString()
+        {
+            var sb = new StringBuilder();
+            sb.Append("class XmlItem {\n");
+            sb.Append("  AttributeString: ").Append(AttributeString).Append("\n");
+            sb.Append("  AttributeNumber: ").Append(AttributeNumber).Append("\n");
+            sb.Append("  AttributeInteger: ").Append(AttributeInteger).Append("\n");
+            sb.Append("  AttributeBoolean: ").Append(AttributeBoolean).Append("\n");
+            sb.Append("  WrappedArray: ").Append(WrappedArray).Append("\n");
+            sb.Append("  NameString: ").Append(NameString).Append("\n");
+            sb.Append("  NameNumber: ").Append(NameNumber).Append("\n");
+            sb.Append("  NameInteger: ").Append(NameInteger).Append("\n");
+            sb.Append("  NameBoolean: ").Append(NameBoolean).Append("\n");
+            sb.Append("  NameArray: ").Append(NameArray).Append("\n");
+            sb.Append("  NameWrappedArray: ").Append(NameWrappedArray).Append("\n");
+            sb.Append("  PrefixString: ").Append(PrefixString).Append("\n");
+            sb.Append("  PrefixNumber: ").Append(PrefixNumber).Append("\n");
+            sb.Append("  PrefixInteger: ").Append(PrefixInteger).Append("\n");
+            sb.Append("  PrefixBoolean: ").Append(PrefixBoolean).Append("\n");
+            sb.Append("  PrefixArray: ").Append(PrefixArray).Append("\n");
+            sb.Append("  PrefixWrappedArray: ").Append(PrefixWrappedArray).Append("\n");
+            sb.Append("  NamespaceString: ").Append(NamespaceString).Append("\n");
+            sb.Append("  NamespaceNumber: ").Append(NamespaceNumber).Append("\n");
+            sb.Append("  NamespaceInteger: ").Append(NamespaceInteger).Append("\n");
+            sb.Append("  NamespaceBoolean: ").Append(NamespaceBoolean).Append("\n");
+            sb.Append("  NamespaceArray: ").Append(NamespaceArray).Append("\n");
+            sb.Append("  NamespaceWrappedArray: ").Append(NamespaceWrappedArray).Append("\n");
+            sb.Append("  PrefixNsString: ").Append(PrefixNsString).Append("\n");
+            sb.Append("  PrefixNsNumber: ").Append(PrefixNsNumber).Append("\n");
+            sb.Append("  PrefixNsInteger: ").Append(PrefixNsInteger).Append("\n");
+            sb.Append("  PrefixNsBoolean: ").Append(PrefixNsBoolean).Append("\n");
+            sb.Append("  PrefixNsArray: ").Append(PrefixNsArray).Append("\n");
+            sb.Append("  PrefixNsWrappedArray: ").Append(PrefixNsWrappedArray).Append("\n");
+            sb.Append("}\n");
+            return sb.ToString();
+        }
+  
+        /// <summary>
+        /// Returns the JSON string presentation of the object
+        /// </summary>
+        /// <returns>JSON string presentation of the object</returns>
+        public virtual string ToJson()
+        {
+            return JsonConvert.SerializeObject(this, Formatting.Indented);
+        }
+
+        /// <summary>
+        /// Returns true if objects are equal
+        /// </summary>
+        /// <param name="input">Object to be compared</param>
+        /// <returns>Boolean</returns>
+        public override bool Equals(object input)
+        {
+            return this.Equals(input as XmlItem);
+        }
+
+        /// <summary>
+        /// Returns true if XmlItem instances are equal
+        /// </summary>
+        /// <param name="input">Instance of XmlItem to be compared</param>
+        /// <returns>Boolean</returns>
+        public bool Equals(XmlItem input)
+        {
+            if (input == null)
+                return false;
+
+            return 
+                (
+                    this.AttributeString == input.AttributeString ||
+                    (this.AttributeString != null &&
+                    this.AttributeString.Equals(input.AttributeString))
+                ) && 
+                (
+                    this.AttributeNumber == input.AttributeNumber ||
+                    (this.AttributeNumber != null &&
+                    this.AttributeNumber.Equals(input.AttributeNumber))
+                ) && 
+                (
+                    this.AttributeInteger == input.AttributeInteger ||
+                    (this.AttributeInteger != null &&
+                    this.AttributeInteger.Equals(input.AttributeInteger))
+                ) && 
+                (
+                    this.AttributeBoolean == input.AttributeBoolean ||
+                    (this.AttributeBoolean != null &&
+                    this.AttributeBoolean.Equals(input.AttributeBoolean))
+                ) && 
+                (
+                    this.WrappedArray == input.WrappedArray ||
+                    this.WrappedArray != null &&
+                    this.WrappedArray.SequenceEqual(input.WrappedArray)
+                ) && 
+                (
+                    this.NameString == input.NameString ||
+                    (this.NameString != null &&
+                    this.NameString.Equals(input.NameString))
+                ) && 
+                (
+                    this.NameNumber == input.NameNumber ||
+                    (this.NameNumber != null &&
+                    this.NameNumber.Equals(input.NameNumber))
+                ) && 
+                (
+                    this.NameInteger == input.NameInteger ||
+                    (this.NameInteger != null &&
+                    this.NameInteger.Equals(input.NameInteger))
+                ) && 
+                (
+                    this.NameBoolean == input.NameBoolean ||
+                    (this.NameBoolean != null &&
+                    this.NameBoolean.Equals(input.NameBoolean))
+                ) && 
+                (
+                    this.NameArray == input.NameArray ||
+                    this.NameArray != null &&
+                    this.NameArray.SequenceEqual(input.NameArray)
+                ) && 
+                (
+                    this.NameWrappedArray == input.NameWrappedArray ||
+                    this.NameWrappedArray != null &&
+                    this.NameWrappedArray.SequenceEqual(input.NameWrappedArray)
+                ) && 
+                (
+                    this.PrefixString == input.PrefixString ||
+                    (this.PrefixString != null &&
+                    this.PrefixString.Equals(input.PrefixString))
+                ) && 
+                (
+                    this.PrefixNumber == input.PrefixNumber ||
+                    (this.PrefixNumber != null &&
+                    this.PrefixNumber.Equals(input.PrefixNumber))
+                ) && 
+                (
+                    this.PrefixInteger == input.PrefixInteger ||
+                    (this.PrefixInteger != null &&
+                    this.PrefixInteger.Equals(input.PrefixInteger))
+                ) && 
+                (
+                    this.PrefixBoolean == input.PrefixBoolean ||
+                    (this.PrefixBoolean != null &&
+                    this.PrefixBoolean.Equals(input.PrefixBoolean))
+                ) && 
+                (
+                    this.PrefixArray == input.PrefixArray ||
+                    this.PrefixArray != null &&
+                    this.PrefixArray.SequenceEqual(input.PrefixArray)
+                ) && 
+                (
+                    this.PrefixWrappedArray == input.PrefixWrappedArray ||
+                    this.PrefixWrappedArray != null &&
+                    this.PrefixWrappedArray.SequenceEqual(input.PrefixWrappedArray)
+                ) && 
+                (
+                    this.NamespaceString == input.NamespaceString ||
+                    (this.NamespaceString != null &&
+                    this.NamespaceString.Equals(input.NamespaceString))
+                ) && 
+                (
+                    this.NamespaceNumber == input.NamespaceNumber ||
+                    (this.NamespaceNumber != null &&
+                    this.NamespaceNumber.Equals(input.NamespaceNumber))
+                ) && 
+                (
+                    this.NamespaceInteger == input.NamespaceInteger ||
+                    (this.NamespaceInteger != null &&
+                    this.NamespaceInteger.Equals(input.NamespaceInteger))
+                ) && 
+                (
+                    this.NamespaceBoolean == input.NamespaceBoolean ||
+                    (this.NamespaceBoolean != null &&
+                    this.NamespaceBoolean.Equals(input.NamespaceBoolean))
+                ) && 
+                (
+                    this.NamespaceArray == input.NamespaceArray ||
+                    this.NamespaceArray != null &&
+                    this.NamespaceArray.SequenceEqual(input.NamespaceArray)
+                ) && 
+                (
+                    this.NamespaceWrappedArray == input.NamespaceWrappedArray ||
+                    this.NamespaceWrappedArray != null &&
+                    this.NamespaceWrappedArray.SequenceEqual(input.NamespaceWrappedArray)
+                ) && 
+                (
+                    this.PrefixNsString == input.PrefixNsString ||
+                    (this.PrefixNsString != null &&
+                    this.PrefixNsString.Equals(input.PrefixNsString))
+                ) && 
+                (
+                    this.PrefixNsNumber == input.PrefixNsNumber ||
+                    (this.PrefixNsNumber != null &&
+                    this.PrefixNsNumber.Equals(input.PrefixNsNumber))
+                ) && 
+                (
+                    this.PrefixNsInteger == input.PrefixNsInteger ||
+                    (this.PrefixNsInteger != null &&
+                    this.PrefixNsInteger.Equals(input.PrefixNsInteger))
+                ) && 
+                (
+                    this.PrefixNsBoolean == input.PrefixNsBoolean ||
+                    (this.PrefixNsBoolean != null &&
+                    this.PrefixNsBoolean.Equals(input.PrefixNsBoolean))
+                ) && 
+                (
+                    this.PrefixNsArray == input.PrefixNsArray ||
+                    this.PrefixNsArray != null &&
+                    this.PrefixNsArray.SequenceEqual(input.PrefixNsArray)
+                ) && 
+                (
+                    this.PrefixNsWrappedArray == input.PrefixNsWrappedArray ||
+                    this.PrefixNsWrappedArray != null &&
+                    this.PrefixNsWrappedArray.SequenceEqual(input.PrefixNsWrappedArray)
+                );
+        }
+
+        /// <summary>
+        /// Gets the hash code
+        /// </summary>
+        /// <returns>Hash code</returns>
+        public override int GetHashCode()
+        {
+            unchecked // Overflow is fine, just wrap
+            {
+                int hashCode = 41;
+                if (this.AttributeString != null)
+                    hashCode = hashCode * 59 + this.AttributeString.GetHashCode();
+                if (this.AttributeNumber != null)
+                    hashCode = hashCode * 59 + this.AttributeNumber.GetHashCode();
+                if (this.AttributeInteger != null)
+                    hashCode = hashCode * 59 + this.AttributeInteger.GetHashCode();
+                if (this.AttributeBoolean != null)
+                    hashCode = hashCode * 59 + this.AttributeBoolean.GetHashCode();
+                if (this.WrappedArray != null)
+                    hashCode = hashCode * 59 + this.WrappedArray.GetHashCode();
+                if (this.NameString != null)
+                    hashCode = hashCode * 59 + this.NameString.GetHashCode();
+                if (this.NameNumber != null)
+                    hashCode = hashCode * 59 + this.NameNumber.GetHashCode();
+                if (this.NameInteger != null)
+                    hashCode = hashCode * 59 + this.NameInteger.GetHashCode();
+                if (this.NameBoolean != null)
+                    hashCode = hashCode * 59 + this.NameBoolean.GetHashCode();
+                if (this.NameArray != null)
+                    hashCode = hashCode * 59 + this.NameArray.GetHashCode();
+                if (this.NameWrappedArray != null)
+                    hashCode = hashCode * 59 + this.NameWrappedArray.GetHashCode();
+                if (this.PrefixString != null)
+                    hashCode = hashCode * 59 + this.PrefixString.GetHashCode();
+                if (this.PrefixNumber != null)
+                    hashCode = hashCode * 59 + this.PrefixNumber.GetHashCode();
+                if (this.PrefixInteger != null)
+                    hashCode = hashCode * 59 + this.PrefixInteger.GetHashCode();
+                if (this.PrefixBoolean != null)
+                    hashCode = hashCode * 59 + this.PrefixBoolean.GetHashCode();
+                if (this.PrefixArray != null)
+                    hashCode = hashCode * 59 + this.PrefixArray.GetHashCode();
+                if (this.PrefixWrappedArray != null)
+                    hashCode = hashCode * 59 + this.PrefixWrappedArray.GetHashCode();
+                if (this.NamespaceString != null)
+                    hashCode = hashCode * 59 + this.NamespaceString.GetHashCode();
+                if (this.NamespaceNumber != null)
+                    hashCode = hashCode * 59 + this.NamespaceNumber.GetHashCode();
+                if (this.NamespaceInteger != null)
+                    hashCode = hashCode * 59 + this.NamespaceInteger.GetHashCode();
+                if (this.NamespaceBoolean != null)
+                    hashCode = hashCode * 59 + this.NamespaceBoolean.GetHashCode();
+                if (this.NamespaceArray != null)
+                    hashCode = hashCode * 59 + this.NamespaceArray.GetHashCode();
+                if (this.NamespaceWrappedArray != null)
+                    hashCode = hashCode * 59 + this.NamespaceWrappedArray.GetHashCode();
+                if (this.PrefixNsString != null)
+                    hashCode = hashCode * 59 + this.PrefixNsString.GetHashCode();
+                if (this.PrefixNsNumber != null)
+                    hashCode = hashCode * 59 + this.PrefixNsNumber.GetHashCode();
+                if (this.PrefixNsInteger != null)
+                    hashCode = hashCode * 59 + this.PrefixNsInteger.GetHashCode();
+                if (this.PrefixNsBoolean != null)
+                    hashCode = hashCode * 59 + this.PrefixNsBoolean.GetHashCode();
+                if (this.PrefixNsArray != null)
+                    hashCode = hashCode * 59 + this.PrefixNsArray.GetHashCode();
+                if (this.PrefixNsWrappedArray != null)
+                    hashCode = hashCode * 59 + this.PrefixNsWrappedArray.GetHashCode();
+                return hashCode;
+            }
+        }
+
+        /// <summary>
+        /// To validate all properties of the instance
+        /// </summary>
+        /// <param name="validationContext">Validation context</param>
+        /// <returns>Validation Result</returns>
+        IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
+        {
+            yield break;
+        }
+    }
+
+}
diff --git a/samples/client/petstore/go/go-petstore/README.md b/samples/client/petstore/go/go-petstore/README.md
index 4bca622853b54579ae33c18e12d90d0973f3ba8e..b063933c1d5d23061ded5e7a664fe9d1deba8a72 100644
--- a/samples/client/petstore/go/go-petstore/README.md
+++ b/samples/client/petstore/go/go-petstore/README.md
@@ -31,6 +31,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 Class | Method | HTTP request | Description
 ------------ | ------------- | ------------- | -------------
 *AnotherFakeApi* | [**Call123TestSpecialTags**](docs/AnotherFakeApi.md#call123testspecialtags) | **Patch** /another-fake/dummy | To test special tags
+*FakeApi* | [**CreateXmlItem**](docs/FakeApi.md#createxmlitem) | **Post** /fake/create_xml_item | creates an XmlItem
 *FakeApi* | [**FakeOuterBooleanSerialize**](docs/FakeApi.md#fakeouterbooleanserialize) | **Post** /fake/outer/boolean | 
 *FakeApi* | [**FakeOuterCompositeSerialize**](docs/FakeApi.md#fakeoutercompositeserialize) | **Post** /fake/outer/composite | 
 *FakeApi* | [**FakeOuterNumberSerialize**](docs/FakeApi.md#fakeouternumberserialize) | **Post** /fake/outer/number | 
@@ -105,6 +106,7 @@ Class | Method | HTTP request | Description
  - [TypeHolderDefault](docs/TypeHolderDefault.md)
  - [TypeHolderExample](docs/TypeHolderExample.md)
  - [User](docs/User.md)
+ - [XmlItem](docs/XmlItem.md)
 
 
 ## Documentation For Authorization
diff --git a/samples/client/petstore/go/go-petstore/api/openapi.yaml b/samples/client/petstore/go/go-petstore/api/openapi.yaml
index 671c549a19a592109849b9af06ed05c1f114fd6d..464fdb37e8c1ea9fe4b621b2aec37ee3a87ae84e 100644
--- a/samples/client/petstore/go/go-petstore/api/openapi.yaml
+++ b/samples/client/petstore/go/go-petstore/api/openapi.yaml
@@ -1014,6 +1014,40 @@ paths:
       tags:
       - fake
       x-codegen-request-body-name: body
+  /fake/create_xml_item:
+    post:
+      description: this route creates an XmlItem
+      operationId: createXmlItem
+      requestBody:
+        content:
+          application/xml:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          application/xml; charset=utf-8:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          application/xml; charset=utf-16:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml; charset=utf-8:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml; charset=utf-16:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+        description: XmlItem Body
+        required: true
+      responses:
+        200:
+          content: {}
+          description: successful operation
+      summary: creates an XmlItem
+      tags:
+      - fake
+      x-codegen-request-body-name: XmlItem
   /another-fake/dummy:
     patch:
       description: To test special tags and operation ID starting with number
@@ -1699,6 +1733,185 @@ components:
       - number_item
       - string_item
       type: object
+    XmlItem:
+      properties:
+        attribute_string:
+          example: string
+          type: string
+          xml:
+            attribute: true
+        attribute_number:
+          example: 1.234
+          type: number
+          xml:
+            attribute: true
+        attribute_integer:
+          example: -2
+          type: integer
+          xml:
+            attribute: true
+        attribute_boolean:
+          example: true
+          type: boolean
+          xml:
+            attribute: true
+        wrapped_array:
+          items:
+            type: integer
+          type: array
+          xml:
+            wrapped: true
+        name_string:
+          example: string
+          type: string
+          xml:
+            name: xml_name_string
+        name_number:
+          example: 1.234
+          type: number
+          xml:
+            name: xml_name_number
+        name_integer:
+          example: -2
+          type: integer
+          xml:
+            name: xml_name_integer
+        name_boolean:
+          example: true
+          type: boolean
+          xml:
+            name: xml_name_boolean
+        name_array:
+          items:
+            type: integer
+            xml:
+              name: xml_name_array_item
+          type: array
+        name_wrapped_array:
+          items:
+            type: integer
+            xml:
+              name: xml_name_wrapped_array_item
+          type: array
+          xml:
+            name: xml_name_wrapped_array
+            wrapped: true
+        prefix_string:
+          example: string
+          type: string
+          xml:
+            prefix: ab
+        prefix_number:
+          example: 1.234
+          type: number
+          xml:
+            prefix: cd
+        prefix_integer:
+          example: -2
+          type: integer
+          xml:
+            prefix: ef
+        prefix_boolean:
+          example: true
+          type: boolean
+          xml:
+            prefix: gh
+        prefix_array:
+          items:
+            type: integer
+            xml:
+              prefix: ij
+          type: array
+        prefix_wrapped_array:
+          items:
+            type: integer
+            xml:
+              prefix: mn
+          type: array
+          xml:
+            prefix: kl
+            wrapped: true
+        namespace_string:
+          example: string
+          type: string
+          xml:
+            namespace: http://a.com/schema
+        namespace_number:
+          example: 1.234
+          type: number
+          xml:
+            namespace: http://b.com/schema
+        namespace_integer:
+          example: -2
+          type: integer
+          xml:
+            namespace: http://c.com/schema
+        namespace_boolean:
+          example: true
+          type: boolean
+          xml:
+            namespace: http://d.com/schema
+        namespace_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://e.com/schema
+          type: array
+        namespace_wrapped_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://g.com/schema
+          type: array
+          xml:
+            namespace: http://f.com/schema
+            wrapped: true
+        prefix_ns_string:
+          example: string
+          type: string
+          xml:
+            namespace: http://a.com/schema
+            prefix: a
+        prefix_ns_number:
+          example: 1.234
+          type: number
+          xml:
+            namespace: http://b.com/schema
+            prefix: b
+        prefix_ns_integer:
+          example: -2
+          type: integer
+          xml:
+            namespace: http://c.com/schema
+            prefix: c
+        prefix_ns_boolean:
+          example: true
+          type: boolean
+          xml:
+            namespace: http://d.com/schema
+            prefix: d
+        prefix_ns_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://e.com/schema
+              prefix: e
+          type: array
+        prefix_ns_wrapped_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://g.com/schema
+              prefix: g
+          type: array
+          xml:
+            namespace: http://f.com/schema
+            prefix: f
+            wrapped: true
+      type: object
+      xml:
+        namespace: http://a.com/schema
+        prefix: pre
   securitySchemes:
     petstore_auth:
       flows:
diff --git a/samples/client/petstore/go/go-petstore/api_fake.go b/samples/client/petstore/go/go-petstore/api_fake.go
index 414533b94789dbd996a761b31bad534bf1179415..90af0bcb03f70e6cf35c7d87368f21cb597d49d7 100644
--- a/samples/client/petstore/go/go-petstore/api_fake.go
+++ b/samples/client/petstore/go/go-petstore/api_fake.go
@@ -26,6 +26,74 @@ var (
 
 type FakeApiService service
 
+/*
+FakeApiService creates an XmlItem
+this route creates an XmlItem
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param xmlItem XmlItem Body
+*/
+func (a *FakeApiService) CreateXmlItem(ctx context.Context, xmlItem XmlItem) (*http.Response, error) {
+	var (
+		localVarHttpMethod   = strings.ToUpper("Post")
+		localVarPostBody     interface{}
+		localVarFormFileName string
+		localVarFileName     string
+		localVarFileBytes    []byte
+	)
+
+	// create path and map variables
+	localVarPath := a.client.cfg.BasePath + "/fake/create_xml_item"
+
+	localVarHeaderParams := make(map[string]string)
+	localVarQueryParams := url.Values{}
+	localVarFormParams := url.Values{}
+
+	// to determine the Content-Type header
+	localVarHttpContentTypes := []string{"application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"}
+
+	// set Content-Type header
+	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+	if localVarHttpContentType != "" {
+		localVarHeaderParams["Content-Type"] = localVarHttpContentType
+	}
+
+	// to determine the Accept header
+	localVarHttpHeaderAccepts := []string{}
+
+	// set Accept header
+	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+	if localVarHttpHeaderAccept != "" {
+		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+	}
+	// body params
+	localVarPostBody = &xmlItem
+	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+	if err != nil {
+		return nil, err
+	}
+
+	localVarHttpResponse, err := a.client.callAPI(r)
+	if err != nil || localVarHttpResponse == nil {
+		return localVarHttpResponse, err
+	}
+
+	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+	localVarHttpResponse.Body.Close()
+	if err != nil {
+		return localVarHttpResponse, err
+	}
+
+	if localVarHttpResponse.StatusCode >= 300 {
+		newErr := GenericOpenAPIError{
+			body:  localVarBody,
+			error: localVarHttpResponse.Status,
+		}
+		return localVarHttpResponse, newErr
+	}
+
+	return localVarHttpResponse, nil
+}
+
 /*
 FakeApiService
 Test serialization of outer boolean types
diff --git a/samples/client/petstore/go/go-petstore/docs/FakeApi.md b/samples/client/petstore/go/go-petstore/docs/FakeApi.md
index d474551a034e6ce7e040d5ee3452d061e4972255..e6d0dec3fe1f1f56f8b82fefcdda248f8e72ab58 100644
--- a/samples/client/petstore/go/go-petstore/docs/FakeApi.md
+++ b/samples/client/petstore/go/go-petstore/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**CreateXmlItem**](FakeApi.md#CreateXmlItem) | **Post** /fake/create_xml_item | creates an XmlItem
 [**FakeOuterBooleanSerialize**](FakeApi.md#FakeOuterBooleanSerialize) | **Post** /fake/outer/boolean | 
 [**FakeOuterCompositeSerialize**](FakeApi.md#FakeOuterCompositeSerialize) | **Post** /fake/outer/composite | 
 [**FakeOuterNumberSerialize**](FakeApi.md#FakeOuterNumberSerialize) | **Post** /fake/outer/number | 
@@ -18,6 +19,34 @@ Method | HTTP request | Description
 [**TestJsonFormData**](FakeApi.md#TestJsonFormData) | **Get** /fake/jsonFormData | test json serialization of form data
 
 
+# **CreateXmlItem**
+> CreateXmlItem(ctx, xmlItem)
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Required Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+  **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body | 
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
 # **FakeOuterBooleanSerialize**
 > bool FakeOuterBooleanSerialize(ctx, optional)
 
diff --git a/samples/client/petstore/go/go-petstore/docs/XmlItem.md b/samples/client/petstore/go/go-petstore/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..573fac8e2d5cdb0faa01fa4ef34656cd2ed9bc75
--- /dev/null
+++ b/samples/client/petstore/go/go-petstore/docs/XmlItem.md
@@ -0,0 +1,38 @@
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**AttributeString** | **string** |  | [optional] 
+**AttributeNumber** | **float32** |  | [optional] 
+**AttributeInteger** | **int32** |  | [optional] 
+**AttributeBoolean** | **bool** |  | [optional] 
+**WrappedArray** | **[]int32** |  | [optional] 
+**NameString** | **string** |  | [optional] 
+**NameNumber** | **float32** |  | [optional] 
+**NameInteger** | **int32** |  | [optional] 
+**NameBoolean** | **bool** |  | [optional] 
+**NameArray** | **[]int32** |  | [optional] 
+**NameWrappedArray** | **[]int32** |  | [optional] 
+**PrefixString** | **string** |  | [optional] 
+**PrefixNumber** | **float32** |  | [optional] 
+**PrefixInteger** | **int32** |  | [optional] 
+**PrefixBoolean** | **bool** |  | [optional] 
+**PrefixArray** | **[]int32** |  | [optional] 
+**PrefixWrappedArray** | **[]int32** |  | [optional] 
+**NamespaceString** | **string** |  | [optional] 
+**NamespaceNumber** | **float32** |  | [optional] 
+**NamespaceInteger** | **int32** |  | [optional] 
+**NamespaceBoolean** | **bool** |  | [optional] 
+**NamespaceArray** | **[]int32** |  | [optional] 
+**NamespaceWrappedArray** | **[]int32** |  | [optional] 
+**PrefixNsString** | **string** |  | [optional] 
+**PrefixNsNumber** | **float32** |  | [optional] 
+**PrefixNsInteger** | **int32** |  | [optional] 
+**PrefixNsBoolean** | **bool** |  | [optional] 
+**PrefixNsArray** | **[]int32** |  | [optional] 
+**PrefixNsWrappedArray** | **[]int32** |  | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/client/petstore/go/go-petstore/model_xml_item.go b/samples/client/petstore/go/go-petstore/model_xml_item.go
new file mode 100644
index 0000000000000000000000000000000000000000..a623bda5c74283ee3e596c521dd71a2eb34fc7d6
--- /dev/null
+++ b/samples/client/petstore/go/go-petstore/model_xml_item.go
@@ -0,0 +1,42 @@
+/*
+ * OpenAPI Petstore
+ *
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type XmlItem struct {
+	AttributeString string `json:"attribute_string,omitempty"`
+	AttributeNumber float32 `json:"attribute_number,omitempty"`
+	AttributeInteger int32 `json:"attribute_integer,omitempty"`
+	AttributeBoolean bool `json:"attribute_boolean,omitempty"`
+	WrappedArray []int32 `json:"wrapped_array,omitempty"`
+	NameString string `json:"name_string,omitempty"`
+	NameNumber float32 `json:"name_number,omitempty"`
+	NameInteger int32 `json:"name_integer,omitempty"`
+	NameBoolean bool `json:"name_boolean,omitempty"`
+	NameArray []int32 `json:"name_array,omitempty"`
+	NameWrappedArray []int32 `json:"name_wrapped_array,omitempty"`
+	PrefixString string `json:"prefix_string,omitempty"`
+	PrefixNumber float32 `json:"prefix_number,omitempty"`
+	PrefixInteger int32 `json:"prefix_integer,omitempty"`
+	PrefixBoolean bool `json:"prefix_boolean,omitempty"`
+	PrefixArray []int32 `json:"prefix_array,omitempty"`
+	PrefixWrappedArray []int32 `json:"prefix_wrapped_array,omitempty"`
+	NamespaceString string `json:"namespace_string,omitempty"`
+	NamespaceNumber float32 `json:"namespace_number,omitempty"`
+	NamespaceInteger int32 `json:"namespace_integer,omitempty"`
+	NamespaceBoolean bool `json:"namespace_boolean,omitempty"`
+	NamespaceArray []int32 `json:"namespace_array,omitempty"`
+	NamespaceWrappedArray []int32 `json:"namespace_wrapped_array,omitempty"`
+	PrefixNsString string `json:"prefix_ns_string,omitempty"`
+	PrefixNsNumber float32 `json:"prefix_ns_number,omitempty"`
+	PrefixNsInteger int32 `json:"prefix_ns_integer,omitempty"`
+	PrefixNsBoolean bool `json:"prefix_ns_boolean,omitempty"`
+	PrefixNsArray []int32 `json:"prefix_ns_array,omitempty"`
+	PrefixNsWrappedArray []int32 `json:"prefix_ns_wrapped_array,omitempty"`
+}
diff --git a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/API/Fake.hs b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/API/Fake.hs
index 40d79fceb2fb34a41dddc64273cb7969d81891ea..606e401fbc5ef9e5e3e1f255ee2a8bf15029291e 100644
--- a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/API/Fake.hs
+++ b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/API/Fake.hs
@@ -57,6 +57,44 @@ import qualified Prelude as P
 
 -- ** Fake
 
+-- *** createXmlItem
+
+-- | @POST \/fake\/create_xml_item@
+-- 
+-- creates an XmlItem
+-- 
+-- this route creates an XmlItem
+-- 
+createXmlItem 
+  :: (Consumes CreateXmlItem contentType, MimeRender contentType XmlItem)
+  => ContentType contentType -- ^ request content-type ('MimeType')
+  -> XmlItem -- ^ "xmlItem" -  XmlItem Body
+  -> OpenAPIPetstoreRequest CreateXmlItem contentType NoContent MimeNoContent
+createXmlItem _ xmlItem =
+  _mkRequest "POST" ["/fake/create_xml_item"]
+    `setBodyParam` xmlItem
+
+data CreateXmlItem 
+
+-- | /Body Param/ "XmlItem" - XmlItem Body
+instance HasBodyParam CreateXmlItem XmlItem 
+
+-- | @application/xml@
+instance Consumes CreateXmlItem MimeXML
+-- | @text/xml@
+instance Consumes CreateXmlItem MimeTextxml
+-- | @text/xml; charset=utf-8@
+instance Consumes CreateXmlItem MimeTextxmlCharsetutf8
+-- | @text/xml; charset=utf-16@
+instance Consumes CreateXmlItem MimeTextxmlCharsetutf16
+-- | @application/xml; charset=utf-8@
+instance Consumes CreateXmlItem MimeXmlCharsetutf8
+-- | @application/xml; charset=utf-16@
+instance Consumes CreateXmlItem MimeXmlCharsetutf16
+
+instance Produces CreateXmlItem MimeNoContent
+
+
 -- *** fakeOuterBooleanSerialize
 
 -- | @POST \/fake\/outer\/boolean@
diff --git a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/MimeTypes.hs b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/MimeTypes.hs
index 0da4b6310f073d4eebae7f00194b0f1277208926..ee02f76b03b6895859f7a43606ede24fe34a6d51 100644
--- a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/MimeTypes.hs
+++ b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/MimeTypes.hs
@@ -201,3 +201,55 @@ instance MimeUnrender MimeOctetStream String where mimeUnrender _ = P.Right . BC
 instance MimeUnrender MimeNoContent NoContent where mimeUnrender _ = P.Right . P.const NoContent
 
 
+-- * Custom Mime Types
+
+-- ** MimeXmlCharsetutf16
+
+data MimeXmlCharsetutf16 = MimeXmlCharsetutf16 deriving (P.Typeable)
+
+-- | @application/xml; charset=utf-16@
+instance MimeType MimeXmlCharsetutf16 where
+  mimeType _ = Just $ P.fromString "application/xml; charset=utf-16"
+-- instance MimeRender MimeXmlCharsetutf16 T.Text where mimeRender _ = undefined
+-- instance MimeUnrender MimeXmlCharsetutf16 T.Text where mimeUnrender _ = undefined
+
+-- ** MimeXmlCharsetutf8
+
+data MimeXmlCharsetutf8 = MimeXmlCharsetutf8 deriving (P.Typeable)
+
+-- | @application/xml; charset=utf-8@
+instance MimeType MimeXmlCharsetutf8 where
+  mimeType _ = Just $ P.fromString "application/xml; charset=utf-8"
+-- instance MimeRender MimeXmlCharsetutf8 T.Text where mimeRender _ = undefined
+-- instance MimeUnrender MimeXmlCharsetutf8 T.Text where mimeUnrender _ = undefined
+
+-- ** MimeTextxml
+
+data MimeTextxml = MimeTextxml deriving (P.Typeable)
+
+-- | @text/xml@
+instance MimeType MimeTextxml where
+  mimeType _ = Just $ P.fromString "text/xml"
+-- instance MimeRender MimeTextxml T.Text where mimeRender _ = undefined
+-- instance MimeUnrender MimeTextxml T.Text where mimeUnrender _ = undefined
+
+-- ** MimeTextxmlCharsetutf16
+
+data MimeTextxmlCharsetutf16 = MimeTextxmlCharsetutf16 deriving (P.Typeable)
+
+-- | @text/xml; charset=utf-16@
+instance MimeType MimeTextxmlCharsetutf16 where
+  mimeType _ = Just $ P.fromString "text/xml; charset=utf-16"
+-- instance MimeRender MimeTextxmlCharsetutf16 T.Text where mimeRender _ = undefined
+-- instance MimeUnrender MimeTextxmlCharsetutf16 T.Text where mimeUnrender _ = undefined
+
+-- ** MimeTextxmlCharsetutf8
+
+data MimeTextxmlCharsetutf8 = MimeTextxmlCharsetutf8 deriving (P.Typeable)
+
+-- | @text/xml; charset=utf-8@
+instance MimeType MimeTextxmlCharsetutf8 where
+  mimeType _ = Just $ P.fromString "text/xml; charset=utf-8"
+-- instance MimeRender MimeTextxmlCharsetutf8 T.Text where mimeRender _ = undefined
+-- instance MimeUnrender MimeTextxmlCharsetutf8 T.Text where mimeUnrender _ = undefined
+
diff --git a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/Model.hs b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/Model.hs
index f9926acccdaa1ba62d10612023bb2bdd4d2ca04b..9a55382e4e97d8bceb588b28b0dabf44951fcfd2 100644
--- a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/Model.hs
+++ b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/Model.hs
@@ -1484,6 +1484,146 @@ mkUser =
   , userUserStatus = Nothing
   }
 
+-- ** XmlItem
+-- | XmlItem
+data XmlItem = XmlItem
+  { xmlItemAttributeString :: !(Maybe Text) -- ^ "attribute_string"
+  , xmlItemAttributeNumber :: !(Maybe Double) -- ^ "attribute_number"
+  , xmlItemAttributeInteger :: !(Maybe Int) -- ^ "attribute_integer"
+  , xmlItemAttributeBoolean :: !(Maybe Bool) -- ^ "attribute_boolean"
+  , xmlItemWrappedArray :: !(Maybe [Int]) -- ^ "wrapped_array"
+  , xmlItemNameString :: !(Maybe Text) -- ^ "name_string"
+  , xmlItemNameNumber :: !(Maybe Double) -- ^ "name_number"
+  , xmlItemNameInteger :: !(Maybe Int) -- ^ "name_integer"
+  , xmlItemNameBoolean :: !(Maybe Bool) -- ^ "name_boolean"
+  , xmlItemNameArray :: !(Maybe [Int]) -- ^ "name_array"
+  , xmlItemNameWrappedArray :: !(Maybe [Int]) -- ^ "name_wrapped_array"
+  , xmlItemPrefixString :: !(Maybe Text) -- ^ "prefix_string"
+  , xmlItemPrefixNumber :: !(Maybe Double) -- ^ "prefix_number"
+  , xmlItemPrefixInteger :: !(Maybe Int) -- ^ "prefix_integer"
+  , xmlItemPrefixBoolean :: !(Maybe Bool) -- ^ "prefix_boolean"
+  , xmlItemPrefixArray :: !(Maybe [Int]) -- ^ "prefix_array"
+  , xmlItemPrefixWrappedArray :: !(Maybe [Int]) -- ^ "prefix_wrapped_array"
+  , xmlItemNamespaceString :: !(Maybe Text) -- ^ "namespace_string"
+  , xmlItemNamespaceNumber :: !(Maybe Double) -- ^ "namespace_number"
+  , xmlItemNamespaceInteger :: !(Maybe Int) -- ^ "namespace_integer"
+  , xmlItemNamespaceBoolean :: !(Maybe Bool) -- ^ "namespace_boolean"
+  , xmlItemNamespaceArray :: !(Maybe [Int]) -- ^ "namespace_array"
+  , xmlItemNamespaceWrappedArray :: !(Maybe [Int]) -- ^ "namespace_wrapped_array"
+  , xmlItemPrefixNsString :: !(Maybe Text) -- ^ "prefix_ns_string"
+  , xmlItemPrefixNsNumber :: !(Maybe Double) -- ^ "prefix_ns_number"
+  , xmlItemPrefixNsInteger :: !(Maybe Int) -- ^ "prefix_ns_integer"
+  , xmlItemPrefixNsBoolean :: !(Maybe Bool) -- ^ "prefix_ns_boolean"
+  , xmlItemPrefixNsArray :: !(Maybe [Int]) -- ^ "prefix_ns_array"
+  , xmlItemPrefixNsWrappedArray :: !(Maybe [Int]) -- ^ "prefix_ns_wrapped_array"
+  } deriving (P.Show, P.Eq, P.Typeable)
+
+-- | FromJSON XmlItem
+instance A.FromJSON XmlItem where
+  parseJSON = A.withObject "XmlItem" $ \o ->
+    XmlItem
+      <$> (o .:? "attribute_string")
+      <*> (o .:? "attribute_number")
+      <*> (o .:? "attribute_integer")
+      <*> (o .:? "attribute_boolean")
+      <*> (o .:? "wrapped_array")
+      <*> (o .:? "name_string")
+      <*> (o .:? "name_number")
+      <*> (o .:? "name_integer")
+      <*> (o .:? "name_boolean")
+      <*> (o .:? "name_array")
+      <*> (o .:? "name_wrapped_array")
+      <*> (o .:? "prefix_string")
+      <*> (o .:? "prefix_number")
+      <*> (o .:? "prefix_integer")
+      <*> (o .:? "prefix_boolean")
+      <*> (o .:? "prefix_array")
+      <*> (o .:? "prefix_wrapped_array")
+      <*> (o .:? "namespace_string")
+      <*> (o .:? "namespace_number")
+      <*> (o .:? "namespace_integer")
+      <*> (o .:? "namespace_boolean")
+      <*> (o .:? "namespace_array")
+      <*> (o .:? "namespace_wrapped_array")
+      <*> (o .:? "prefix_ns_string")
+      <*> (o .:? "prefix_ns_number")
+      <*> (o .:? "prefix_ns_integer")
+      <*> (o .:? "prefix_ns_boolean")
+      <*> (o .:? "prefix_ns_array")
+      <*> (o .:? "prefix_ns_wrapped_array")
+
+-- | ToJSON XmlItem
+instance A.ToJSON XmlItem where
+  toJSON XmlItem {..} =
+   _omitNulls
+      [ "attribute_string" .= xmlItemAttributeString
+      , "attribute_number" .= xmlItemAttributeNumber
+      , "attribute_integer" .= xmlItemAttributeInteger
+      , "attribute_boolean" .= xmlItemAttributeBoolean
+      , "wrapped_array" .= xmlItemWrappedArray
+      , "name_string" .= xmlItemNameString
+      , "name_number" .= xmlItemNameNumber
+      , "name_integer" .= xmlItemNameInteger
+      , "name_boolean" .= xmlItemNameBoolean
+      , "name_array" .= xmlItemNameArray
+      , "name_wrapped_array" .= xmlItemNameWrappedArray
+      , "prefix_string" .= xmlItemPrefixString
+      , "prefix_number" .= xmlItemPrefixNumber
+      , "prefix_integer" .= xmlItemPrefixInteger
+      , "prefix_boolean" .= xmlItemPrefixBoolean
+      , "prefix_array" .= xmlItemPrefixArray
+      , "prefix_wrapped_array" .= xmlItemPrefixWrappedArray
+      , "namespace_string" .= xmlItemNamespaceString
+      , "namespace_number" .= xmlItemNamespaceNumber
+      , "namespace_integer" .= xmlItemNamespaceInteger
+      , "namespace_boolean" .= xmlItemNamespaceBoolean
+      , "namespace_array" .= xmlItemNamespaceArray
+      , "namespace_wrapped_array" .= xmlItemNamespaceWrappedArray
+      , "prefix_ns_string" .= xmlItemPrefixNsString
+      , "prefix_ns_number" .= xmlItemPrefixNsNumber
+      , "prefix_ns_integer" .= xmlItemPrefixNsInteger
+      , "prefix_ns_boolean" .= xmlItemPrefixNsBoolean
+      , "prefix_ns_array" .= xmlItemPrefixNsArray
+      , "prefix_ns_wrapped_array" .= xmlItemPrefixNsWrappedArray
+      ]
+
+
+-- | Construct a value of type 'XmlItem' (by applying it's required fields, if any)
+mkXmlItem
+  :: XmlItem
+mkXmlItem =
+  XmlItem
+  { xmlItemAttributeString = Nothing
+  , xmlItemAttributeNumber = Nothing
+  , xmlItemAttributeInteger = Nothing
+  , xmlItemAttributeBoolean = Nothing
+  , xmlItemWrappedArray = Nothing
+  , xmlItemNameString = Nothing
+  , xmlItemNameNumber = Nothing
+  , xmlItemNameInteger = Nothing
+  , xmlItemNameBoolean = Nothing
+  , xmlItemNameArray = Nothing
+  , xmlItemNameWrappedArray = Nothing
+  , xmlItemPrefixString = Nothing
+  , xmlItemPrefixNumber = Nothing
+  , xmlItemPrefixInteger = Nothing
+  , xmlItemPrefixBoolean = Nothing
+  , xmlItemPrefixArray = Nothing
+  , xmlItemPrefixWrappedArray = Nothing
+  , xmlItemNamespaceString = Nothing
+  , xmlItemNamespaceNumber = Nothing
+  , xmlItemNamespaceInteger = Nothing
+  , xmlItemNamespaceBoolean = Nothing
+  , xmlItemNamespaceArray = Nothing
+  , xmlItemNamespaceWrappedArray = Nothing
+  , xmlItemPrefixNsString = Nothing
+  , xmlItemPrefixNsNumber = Nothing
+  , xmlItemPrefixNsInteger = Nothing
+  , xmlItemPrefixNsBoolean = Nothing
+  , xmlItemPrefixNsArray = Nothing
+  , xmlItemPrefixNsWrappedArray = Nothing
+  }
+
 
 -- * Enums
 
diff --git a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/ModelLens.hs b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/ModelLens.hs
index 6cb6f6d7e5f3b046cd62ad85a1636309ee1cf0dc..9c81a2dbb5514a01c94316578bc675979d96e39e 100644
--- a/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/ModelLens.hs
+++ b/samples/client/petstore/haskell-http-client/lib/OpenAPIPetstore/ModelLens.hs
@@ -714,3 +714,152 @@ userUserStatusL f User{..} = (\userUserStatus -> User { userUserStatus, ..} ) <$
 {-# INLINE userUserStatusL #-}
 
 
+
+-- * XmlItem
+
+-- | 'xmlItemAttributeString' Lens
+xmlItemAttributeStringL :: Lens_' XmlItem (Maybe Text)
+xmlItemAttributeStringL f XmlItem{..} = (\xmlItemAttributeString -> XmlItem { xmlItemAttributeString, ..} ) <$> f xmlItemAttributeString
+{-# INLINE xmlItemAttributeStringL #-}
+
+-- | 'xmlItemAttributeNumber' Lens
+xmlItemAttributeNumberL :: Lens_' XmlItem (Maybe Double)
+xmlItemAttributeNumberL f XmlItem{..} = (\xmlItemAttributeNumber -> XmlItem { xmlItemAttributeNumber, ..} ) <$> f xmlItemAttributeNumber
+{-# INLINE xmlItemAttributeNumberL #-}
+
+-- | 'xmlItemAttributeInteger' Lens
+xmlItemAttributeIntegerL :: Lens_' XmlItem (Maybe Int)
+xmlItemAttributeIntegerL f XmlItem{..} = (\xmlItemAttributeInteger -> XmlItem { xmlItemAttributeInteger, ..} ) <$> f xmlItemAttributeInteger
+{-# INLINE xmlItemAttributeIntegerL #-}
+
+-- | 'xmlItemAttributeBoolean' Lens
+xmlItemAttributeBooleanL :: Lens_' XmlItem (Maybe Bool)
+xmlItemAttributeBooleanL f XmlItem{..} = (\xmlItemAttributeBoolean -> XmlItem { xmlItemAttributeBoolean, ..} ) <$> f xmlItemAttributeBoolean
+{-# INLINE xmlItemAttributeBooleanL #-}
+
+-- | 'xmlItemWrappedArray' Lens
+xmlItemWrappedArrayL :: Lens_' XmlItem (Maybe [Int])
+xmlItemWrappedArrayL f XmlItem{..} = (\xmlItemWrappedArray -> XmlItem { xmlItemWrappedArray, ..} ) <$> f xmlItemWrappedArray
+{-# INLINE xmlItemWrappedArrayL #-}
+
+-- | 'xmlItemNameString' Lens
+xmlItemNameStringL :: Lens_' XmlItem (Maybe Text)
+xmlItemNameStringL f XmlItem{..} = (\xmlItemNameString -> XmlItem { xmlItemNameString, ..} ) <$> f xmlItemNameString
+{-# INLINE xmlItemNameStringL #-}
+
+-- | 'xmlItemNameNumber' Lens
+xmlItemNameNumberL :: Lens_' XmlItem (Maybe Double)
+xmlItemNameNumberL f XmlItem{..} = (\xmlItemNameNumber -> XmlItem { xmlItemNameNumber, ..} ) <$> f xmlItemNameNumber
+{-# INLINE xmlItemNameNumberL #-}
+
+-- | 'xmlItemNameInteger' Lens
+xmlItemNameIntegerL :: Lens_' XmlItem (Maybe Int)
+xmlItemNameIntegerL f XmlItem{..} = (\xmlItemNameInteger -> XmlItem { xmlItemNameInteger, ..} ) <$> f xmlItemNameInteger
+{-# INLINE xmlItemNameIntegerL #-}
+
+-- | 'xmlItemNameBoolean' Lens
+xmlItemNameBooleanL :: Lens_' XmlItem (Maybe Bool)
+xmlItemNameBooleanL f XmlItem{..} = (\xmlItemNameBoolean -> XmlItem { xmlItemNameBoolean, ..} ) <$> f xmlItemNameBoolean
+{-# INLINE xmlItemNameBooleanL #-}
+
+-- | 'xmlItemNameArray' Lens
+xmlItemNameArrayL :: Lens_' XmlItem (Maybe [Int])
+xmlItemNameArrayL f XmlItem{..} = (\xmlItemNameArray -> XmlItem { xmlItemNameArray, ..} ) <$> f xmlItemNameArray
+{-# INLINE xmlItemNameArrayL #-}
+
+-- | 'xmlItemNameWrappedArray' Lens
+xmlItemNameWrappedArrayL :: Lens_' XmlItem (Maybe [Int])
+xmlItemNameWrappedArrayL f XmlItem{..} = (\xmlItemNameWrappedArray -> XmlItem { xmlItemNameWrappedArray, ..} ) <$> f xmlItemNameWrappedArray
+{-# INLINE xmlItemNameWrappedArrayL #-}
+
+-- | 'xmlItemPrefixString' Lens
+xmlItemPrefixStringL :: Lens_' XmlItem (Maybe Text)
+xmlItemPrefixStringL f XmlItem{..} = (\xmlItemPrefixString -> XmlItem { xmlItemPrefixString, ..} ) <$> f xmlItemPrefixString
+{-# INLINE xmlItemPrefixStringL #-}
+
+-- | 'xmlItemPrefixNumber' Lens
+xmlItemPrefixNumberL :: Lens_' XmlItem (Maybe Double)
+xmlItemPrefixNumberL f XmlItem{..} = (\xmlItemPrefixNumber -> XmlItem { xmlItemPrefixNumber, ..} ) <$> f xmlItemPrefixNumber
+{-# INLINE xmlItemPrefixNumberL #-}
+
+-- | 'xmlItemPrefixInteger' Lens
+xmlItemPrefixIntegerL :: Lens_' XmlItem (Maybe Int)
+xmlItemPrefixIntegerL f XmlItem{..} = (\xmlItemPrefixInteger -> XmlItem { xmlItemPrefixInteger, ..} ) <$> f xmlItemPrefixInteger
+{-# INLINE xmlItemPrefixIntegerL #-}
+
+-- | 'xmlItemPrefixBoolean' Lens
+xmlItemPrefixBooleanL :: Lens_' XmlItem (Maybe Bool)
+xmlItemPrefixBooleanL f XmlItem{..} = (\xmlItemPrefixBoolean -> XmlItem { xmlItemPrefixBoolean, ..} ) <$> f xmlItemPrefixBoolean
+{-# INLINE xmlItemPrefixBooleanL #-}
+
+-- | 'xmlItemPrefixArray' Lens
+xmlItemPrefixArrayL :: Lens_' XmlItem (Maybe [Int])
+xmlItemPrefixArrayL f XmlItem{..} = (\xmlItemPrefixArray -> XmlItem { xmlItemPrefixArray, ..} ) <$> f xmlItemPrefixArray
+{-# INLINE xmlItemPrefixArrayL #-}
+
+-- | 'xmlItemPrefixWrappedArray' Lens
+xmlItemPrefixWrappedArrayL :: Lens_' XmlItem (Maybe [Int])
+xmlItemPrefixWrappedArrayL f XmlItem{..} = (\xmlItemPrefixWrappedArray -> XmlItem { xmlItemPrefixWrappedArray, ..} ) <$> f xmlItemPrefixWrappedArray
+{-# INLINE xmlItemPrefixWrappedArrayL #-}
+
+-- | 'xmlItemNamespaceString' Lens
+xmlItemNamespaceStringL :: Lens_' XmlItem (Maybe Text)
+xmlItemNamespaceStringL f XmlItem{..} = (\xmlItemNamespaceString -> XmlItem { xmlItemNamespaceString, ..} ) <$> f xmlItemNamespaceString
+{-# INLINE xmlItemNamespaceStringL #-}
+
+-- | 'xmlItemNamespaceNumber' Lens
+xmlItemNamespaceNumberL :: Lens_' XmlItem (Maybe Double)
+xmlItemNamespaceNumberL f XmlItem{..} = (\xmlItemNamespaceNumber -> XmlItem { xmlItemNamespaceNumber, ..} ) <$> f xmlItemNamespaceNumber
+{-# INLINE xmlItemNamespaceNumberL #-}
+
+-- | 'xmlItemNamespaceInteger' Lens
+xmlItemNamespaceIntegerL :: Lens_' XmlItem (Maybe Int)
+xmlItemNamespaceIntegerL f XmlItem{..} = (\xmlItemNamespaceInteger -> XmlItem { xmlItemNamespaceInteger, ..} ) <$> f xmlItemNamespaceInteger
+{-# INLINE xmlItemNamespaceIntegerL #-}
+
+-- | 'xmlItemNamespaceBoolean' Lens
+xmlItemNamespaceBooleanL :: Lens_' XmlItem (Maybe Bool)
+xmlItemNamespaceBooleanL f XmlItem{..} = (\xmlItemNamespaceBoolean -> XmlItem { xmlItemNamespaceBoolean, ..} ) <$> f xmlItemNamespaceBoolean
+{-# INLINE xmlItemNamespaceBooleanL #-}
+
+-- | 'xmlItemNamespaceArray' Lens
+xmlItemNamespaceArrayL :: Lens_' XmlItem (Maybe [Int])
+xmlItemNamespaceArrayL f XmlItem{..} = (\xmlItemNamespaceArray -> XmlItem { xmlItemNamespaceArray, ..} ) <$> f xmlItemNamespaceArray
+{-# INLINE xmlItemNamespaceArrayL #-}
+
+-- | 'xmlItemNamespaceWrappedArray' Lens
+xmlItemNamespaceWrappedArrayL :: Lens_' XmlItem (Maybe [Int])
+xmlItemNamespaceWrappedArrayL f XmlItem{..} = (\xmlItemNamespaceWrappedArray -> XmlItem { xmlItemNamespaceWrappedArray, ..} ) <$> f xmlItemNamespaceWrappedArray
+{-# INLINE xmlItemNamespaceWrappedArrayL #-}
+
+-- | 'xmlItemPrefixNsString' Lens
+xmlItemPrefixNsStringL :: Lens_' XmlItem (Maybe Text)
+xmlItemPrefixNsStringL f XmlItem{..} = (\xmlItemPrefixNsString -> XmlItem { xmlItemPrefixNsString, ..} ) <$> f xmlItemPrefixNsString
+{-# INLINE xmlItemPrefixNsStringL #-}
+
+-- | 'xmlItemPrefixNsNumber' Lens
+xmlItemPrefixNsNumberL :: Lens_' XmlItem (Maybe Double)
+xmlItemPrefixNsNumberL f XmlItem{..} = (\xmlItemPrefixNsNumber -> XmlItem { xmlItemPrefixNsNumber, ..} ) <$> f xmlItemPrefixNsNumber
+{-# INLINE xmlItemPrefixNsNumberL #-}
+
+-- | 'xmlItemPrefixNsInteger' Lens
+xmlItemPrefixNsIntegerL :: Lens_' XmlItem (Maybe Int)
+xmlItemPrefixNsIntegerL f XmlItem{..} = (\xmlItemPrefixNsInteger -> XmlItem { xmlItemPrefixNsInteger, ..} ) <$> f xmlItemPrefixNsInteger
+{-# INLINE xmlItemPrefixNsIntegerL #-}
+
+-- | 'xmlItemPrefixNsBoolean' Lens
+xmlItemPrefixNsBooleanL :: Lens_' XmlItem (Maybe Bool)
+xmlItemPrefixNsBooleanL f XmlItem{..} = (\xmlItemPrefixNsBoolean -> XmlItem { xmlItemPrefixNsBoolean, ..} ) <$> f xmlItemPrefixNsBoolean
+{-# INLINE xmlItemPrefixNsBooleanL #-}
+
+-- | 'xmlItemPrefixNsArray' Lens
+xmlItemPrefixNsArrayL :: Lens_' XmlItem (Maybe [Int])
+xmlItemPrefixNsArrayL f XmlItem{..} = (\xmlItemPrefixNsArray -> XmlItem { xmlItemPrefixNsArray, ..} ) <$> f xmlItemPrefixNsArray
+{-# INLINE xmlItemPrefixNsArrayL #-}
+
+-- | 'xmlItemPrefixNsWrappedArray' Lens
+xmlItemPrefixNsWrappedArrayL :: Lens_' XmlItem (Maybe [Int])
+xmlItemPrefixNsWrappedArrayL f XmlItem{..} = (\xmlItemPrefixNsWrappedArray -> XmlItem { xmlItemPrefixNsWrappedArray, ..} ) <$> f xmlItemPrefixNsWrappedArray
+{-# INLINE xmlItemPrefixNsWrappedArrayL #-}
+
+
diff --git a/samples/client/petstore/haskell-http-client/openapi.yaml b/samples/client/petstore/haskell-http-client/openapi.yaml
index 671c549a19a592109849b9af06ed05c1f114fd6d..464fdb37e8c1ea9fe4b621b2aec37ee3a87ae84e 100644
--- a/samples/client/petstore/haskell-http-client/openapi.yaml
+++ b/samples/client/petstore/haskell-http-client/openapi.yaml
@@ -1014,6 +1014,40 @@ paths:
       tags:
       - fake
       x-codegen-request-body-name: body
+  /fake/create_xml_item:
+    post:
+      description: this route creates an XmlItem
+      operationId: createXmlItem
+      requestBody:
+        content:
+          application/xml:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          application/xml; charset=utf-8:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          application/xml; charset=utf-16:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml; charset=utf-8:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml; charset=utf-16:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+        description: XmlItem Body
+        required: true
+      responses:
+        200:
+          content: {}
+          description: successful operation
+      summary: creates an XmlItem
+      tags:
+      - fake
+      x-codegen-request-body-name: XmlItem
   /another-fake/dummy:
     patch:
       description: To test special tags and operation ID starting with number
@@ -1699,6 +1733,185 @@ components:
       - number_item
       - string_item
       type: object
+    XmlItem:
+      properties:
+        attribute_string:
+          example: string
+          type: string
+          xml:
+            attribute: true
+        attribute_number:
+          example: 1.234
+          type: number
+          xml:
+            attribute: true
+        attribute_integer:
+          example: -2
+          type: integer
+          xml:
+            attribute: true
+        attribute_boolean:
+          example: true
+          type: boolean
+          xml:
+            attribute: true
+        wrapped_array:
+          items:
+            type: integer
+          type: array
+          xml:
+            wrapped: true
+        name_string:
+          example: string
+          type: string
+          xml:
+            name: xml_name_string
+        name_number:
+          example: 1.234
+          type: number
+          xml:
+            name: xml_name_number
+        name_integer:
+          example: -2
+          type: integer
+          xml:
+            name: xml_name_integer
+        name_boolean:
+          example: true
+          type: boolean
+          xml:
+            name: xml_name_boolean
+        name_array:
+          items:
+            type: integer
+            xml:
+              name: xml_name_array_item
+          type: array
+        name_wrapped_array:
+          items:
+            type: integer
+            xml:
+              name: xml_name_wrapped_array_item
+          type: array
+          xml:
+            name: xml_name_wrapped_array
+            wrapped: true
+        prefix_string:
+          example: string
+          type: string
+          xml:
+            prefix: ab
+        prefix_number:
+          example: 1.234
+          type: number
+          xml:
+            prefix: cd
+        prefix_integer:
+          example: -2
+          type: integer
+          xml:
+            prefix: ef
+        prefix_boolean:
+          example: true
+          type: boolean
+          xml:
+            prefix: gh
+        prefix_array:
+          items:
+            type: integer
+            xml:
+              prefix: ij
+          type: array
+        prefix_wrapped_array:
+          items:
+            type: integer
+            xml:
+              prefix: mn
+          type: array
+          xml:
+            prefix: kl
+            wrapped: true
+        namespace_string:
+          example: string
+          type: string
+          xml:
+            namespace: http://a.com/schema
+        namespace_number:
+          example: 1.234
+          type: number
+          xml:
+            namespace: http://b.com/schema
+        namespace_integer:
+          example: -2
+          type: integer
+          xml:
+            namespace: http://c.com/schema
+        namespace_boolean:
+          example: true
+          type: boolean
+          xml:
+            namespace: http://d.com/schema
+        namespace_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://e.com/schema
+          type: array
+        namespace_wrapped_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://g.com/schema
+          type: array
+          xml:
+            namespace: http://f.com/schema
+            wrapped: true
+        prefix_ns_string:
+          example: string
+          type: string
+          xml:
+            namespace: http://a.com/schema
+            prefix: a
+        prefix_ns_number:
+          example: 1.234
+          type: number
+          xml:
+            namespace: http://b.com/schema
+            prefix: b
+        prefix_ns_integer:
+          example: -2
+          type: integer
+          xml:
+            namespace: http://c.com/schema
+            prefix: c
+        prefix_ns_boolean:
+          example: true
+          type: boolean
+          xml:
+            namespace: http://d.com/schema
+            prefix: d
+        prefix_ns_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://e.com/schema
+              prefix: e
+          type: array
+        prefix_ns_wrapped_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://g.com/schema
+              prefix: g
+          type: array
+          xml:
+            namespace: http://f.com/schema
+            prefix: f
+            wrapped: true
+      type: object
+      xml:
+        namespace: http://a.com/schema
+        prefix: pre
   securitySchemes:
     petstore_auth:
       flows:
diff --git a/samples/client/petstore/haskell-http-client/tests/Instances.hs b/samples/client/petstore/haskell-http-client/tests/Instances.hs
index fb943387a19f7e800828a8c36228e156fabc5fa3..7adcd7533910b23753204c5d5651d8c8003dfcbe 100644
--- a/samples/client/petstore/haskell-http-client/tests/Instances.hs
+++ b/samples/client/petstore/haskell-http-client/tests/Instances.hs
@@ -332,6 +332,39 @@ instance Arbitrary User where
       <*> arbitrary -- userPhone :: Maybe Text
       <*> arbitrary -- userUserStatus :: Maybe Int
     
+instance Arbitrary XmlItem where
+  arbitrary =
+    XmlItem
+      <$> arbitrary -- xmlItemAttributeString :: Maybe Text
+      <*> arbitrary -- xmlItemAttributeNumber :: Maybe Double
+      <*> arbitrary -- xmlItemAttributeInteger :: Maybe Int
+      <*> arbitrary -- xmlItemAttributeBoolean :: Maybe Bool
+      <*> arbitrary -- xmlItemWrappedArray :: Maybe [Int]
+      <*> arbitrary -- xmlItemNameString :: Maybe Text
+      <*> arbitrary -- xmlItemNameNumber :: Maybe Double
+      <*> arbitrary -- xmlItemNameInteger :: Maybe Int
+      <*> arbitrary -- xmlItemNameBoolean :: Maybe Bool
+      <*> arbitrary -- xmlItemNameArray :: Maybe [Int]
+      <*> arbitrary -- xmlItemNameWrappedArray :: Maybe [Int]
+      <*> arbitrary -- xmlItemPrefixString :: Maybe Text
+      <*> arbitrary -- xmlItemPrefixNumber :: Maybe Double
+      <*> arbitrary -- xmlItemPrefixInteger :: Maybe Int
+      <*> arbitrary -- xmlItemPrefixBoolean :: Maybe Bool
+      <*> arbitrary -- xmlItemPrefixArray :: Maybe [Int]
+      <*> arbitrary -- xmlItemPrefixWrappedArray :: Maybe [Int]
+      <*> arbitrary -- xmlItemNamespaceString :: Maybe Text
+      <*> arbitrary -- xmlItemNamespaceNumber :: Maybe Double
+      <*> arbitrary -- xmlItemNamespaceInteger :: Maybe Int
+      <*> arbitrary -- xmlItemNamespaceBoolean :: Maybe Bool
+      <*> arbitrary -- xmlItemNamespaceArray :: Maybe [Int]
+      <*> arbitrary -- xmlItemNamespaceWrappedArray :: Maybe [Int]
+      <*> arbitrary -- xmlItemPrefixNsString :: Maybe Text
+      <*> arbitrary -- xmlItemPrefixNsNumber :: Maybe Double
+      <*> arbitrary -- xmlItemPrefixNsInteger :: Maybe Int
+      <*> arbitrary -- xmlItemPrefixNsBoolean :: Maybe Bool
+      <*> arbitrary -- xmlItemPrefixNsArray :: Maybe [Int]
+      <*> arbitrary -- xmlItemPrefixNsWrappedArray :: Maybe [Int]
+    
 
 
 
diff --git a/samples/client/petstore/haskell-http-client/tests/Test.hs b/samples/client/petstore/haskell-http-client/tests/Test.hs
index 59bd9f2301486ed1f45579b88085493d0ac073c7..748a8355dc3c8d60878efc6395466a516ab60a95 100644
--- a/samples/client/petstore/haskell-http-client/tests/Test.hs
+++ b/samples/client/petstore/haskell-http-client/tests/Test.hs
@@ -56,4 +56,5 @@ main =
       propMimeEq MimeJSON (Proxy :: Proxy TypeHolderDefault)
       propMimeEq MimeJSON (Proxy :: Proxy TypeHolderExample)
       propMimeEq MimeJSON (Proxy :: Proxy User)
+      propMimeEq MimeJSON (Proxy :: Proxy XmlItem)
       
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/api/FakeApi.java
index 57620f7cf96496a48022cb51ac30d187fc82778f..d77963bac457a01207cb18ec8ae09ffcc0231770 100644
--- a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -11,6 +11,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -22,6 +23,18 @@ import feign.*;
 public interface FakeApi extends ApiClient.Api {
 
 
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   */
+  @RequestLine("POST /fake/create_xml_item")
+  @Headers({
+    "Content-Type: application/xml",
+    "Accept: application/json",
+  })
+  void createXmlItem(XmlItem xmlItem);
+
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..67cb3aaf861fe67c248460ab447c34eb8f4f7d6f
--- /dev/null
+++ b/samples/client/petstore/java/feign/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,809 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/feign/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/feign/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/feign/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/feign10x/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/feign10x/src/main/java/org/openapitools/client/api/FakeApi.java
index 57620f7cf96496a48022cb51ac30d187fc82778f..d77963bac457a01207cb18ec8ae09ffcc0231770 100644
--- a/samples/client/petstore/java/feign10x/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/feign10x/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -11,6 +11,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -22,6 +23,18 @@ import feign.*;
 public interface FakeApi extends ApiClient.Api {
 
 
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   */
+  @RequestLine("POST /fake/create_xml_item")
+  @Headers({
+    "Content-Type: application/xml",
+    "Accept: application/json",
+  })
+  void createXmlItem(XmlItem xmlItem);
+
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/feign10x/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/feign10x/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..67cb3aaf861fe67c248460ab447c34eb8f4f7d6f
--- /dev/null
+++ b/samples/client/petstore/java/feign10x/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,809 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/feign10x/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/feign10x/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/feign10x/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/google-api-client/docs/FakeApi.md b/samples/client/petstore/java/google-api-client/docs/FakeApi.md
index 8e3385cc83d1b16182f98e5d2f0cd260c8b7cfd2..5b7781b11720beaab7761c0eaa3e63326d606588 100644
--- a/samples/client/petstore/java/google-api-client/docs/FakeApi.md
+++ b/samples/client/petstore/java/google-api-client/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/google-api-client/docs/XmlItem.md b/samples/client/petstore/java/google-api-client/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/google-api-client/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/api/FakeApi.java
index a78c0a021978e5c5bf3232f4ac467da7af2560fd..8f19ffa8b93670ca8b9148898a2a9532377e94f9 100644
--- a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -10,6 +10,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.google.api.client.http.GenericUrl;
@@ -47,6 +48,92 @@ public class FakeApi {
         this.apiClient = apiClient;
     }
 
+  /**
+    * creates an XmlItem
+    * this route creates an XmlItem
+    * <p><b>200</b> - successful operation
+    * @param xmlItem XmlItem Body
+    * @throws IOException if an error occurs while attempting to invoke the API
+    **/
+    public void createXmlItem(XmlItem xmlItem) throws IOException {
+        createXmlItemForHttpResponse(xmlItem);
+    }
+
+  /**
+    * creates an XmlItem
+    * this route creates an XmlItem
+    * <p><b>200</b> - successful operation
+    * @param xmlItem XmlItem Body
+    * @param params Map of query params. A collection will be interpreted as passing in multiple instances of the same query param.
+    * @throws IOException if an error occurs while attempting to invoke the API
+    **/
+    public void createXmlItem(XmlItem xmlItem, Map<String, Object> params) throws IOException {
+        createXmlItemForHttpResponse(xmlItem, params);
+    }
+
+    public HttpResponse createXmlItemForHttpResponse(XmlItem xmlItem) throws IOException {
+        // verify the required parameter 'xmlItem' is set
+        if (xmlItem == null) {
+            throw new IllegalArgumentException("Missing the required parameter 'xmlItem' when calling createXmlItem");
+        }
+        UriBuilder uriBuilder = UriBuilder.fromUri(apiClient.getBasePath() + "/fake/create_xml_item");
+
+        String url = uriBuilder.build().toString();
+        GenericUrl genericUrl = new GenericUrl(url);
+
+        HttpContent content = apiClient.new JacksonJsonHttpContent(xmlItem);
+        return apiClient.getHttpRequestFactory().buildRequest(HttpMethods.POST, genericUrl, content).execute();
+    }
+
+      public HttpResponse createXmlItemForHttpResponse(java.io.InputStream xmlItem, String mediaType) throws IOException {
+          // verify the required parameter 'xmlItem' is set
+              if (xmlItem == null) {
+              throw new IllegalArgumentException("Missing the required parameter 'xmlItem' when calling createXmlItem");
+              }
+              UriBuilder uriBuilder = UriBuilder.fromUri(apiClient.getBasePath() + "/fake/create_xml_item");
+
+              String url = uriBuilder.build().toString();
+              GenericUrl genericUrl = new GenericUrl(url);
+
+              HttpContent content = xmlItem == null ?
+                apiClient.new JacksonJsonHttpContent(null) :
+                new InputStreamContent(mediaType == null ? Json.MEDIA_TYPE : mediaType, xmlItem);
+              return apiClient.getHttpRequestFactory().buildRequest(HttpMethods.POST, genericUrl, content).execute();
+      }
+
+    public HttpResponse createXmlItemForHttpResponse(XmlItem xmlItem, Map<String, Object> params) throws IOException {
+        // verify the required parameter 'xmlItem' is set
+        if (xmlItem == null) {
+            throw new IllegalArgumentException("Missing the required parameter 'xmlItem' when calling createXmlItem");
+        }
+        UriBuilder uriBuilder = UriBuilder.fromUri(apiClient.getBasePath() + "/fake/create_xml_item");
+
+        // Copy the params argument if present, to allow passing in immutable maps
+        Map<String, Object> allParams = params == null ? new HashMap<String, Object>() : new HashMap<String, Object>(params);
+
+        for (Map.Entry<String, Object> entry: allParams.entrySet()) {
+            String key = entry.getKey();
+            Object value = entry.getValue();
+
+            if (key != null && value != null) {
+                if (value instanceof Collection) {
+                    uriBuilder = uriBuilder.queryParam(key, ((Collection) value).toArray());
+                } else if (value instanceof Object[]) {
+                    uriBuilder = uriBuilder.queryParam(key, (Object[]) value);
+                } else {
+                    uriBuilder = uriBuilder.queryParam(key, value);
+                }
+            }
+        }
+
+        String url = uriBuilder.build().toString();
+        GenericUrl genericUrl = new GenericUrl(url);
+
+        HttpContent content = apiClient.new JacksonJsonHttpContent(xmlItem);
+        return apiClient.getHttpRequestFactory().buildRequest(HttpMethods.POST, genericUrl, content).execute();
+    }
+
+
   /**
     * Test serialization of outer boolean types
     * <p><b>200</b> - Output boolean
diff --git a/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4f4b6ea67ed9e18bfb1d94056c1cf56483e41b8
--- /dev/null
+++ b/samples/client/petstore/java/google-api-client/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,809 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/google-api-client/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/google-api-client/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/google-api-client/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/jersey1/docs/FakeApi.md b/samples/client/petstore/java/jersey1/docs/FakeApi.md
index 8e3385cc83d1b16182f98e5d2f0cd260c8b7cfd2..5b7781b11720beaab7761c0eaa3e63326d606588 100644
--- a/samples/client/petstore/java/jersey1/docs/FakeApi.md
+++ b/samples/client/petstore/java/jersey1/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/jersey1/docs/XmlItem.md b/samples/client/petstore/java/jersey1/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/jersey1/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/jersey1/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/jersey1/src/main/java/org/openapitools/client/api/FakeApi.java
index 788ded6e2081c64ea9f8bc6dfa9d444249b57587..f1b6eb2c5a14f6a980e465892c332f8529ffc2ae 100644
--- a/samples/client/petstore/java/jersey1/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/jersey1/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -28,6 +28,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 
 import java.util.ArrayList;
@@ -55,6 +56,47 @@ public class FakeApi {
     this.apiClient = apiClient;
   }
 
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @throws ApiException if fails to make API call
+   */
+  public void createXmlItem(XmlItem xmlItem) throws ApiException {
+    Object localVarPostBody = xmlItem;
+    
+    // verify the required parameter 'xmlItem' is set
+    if (xmlItem == null) {
+      throw new ApiException(400, "Missing the required parameter 'xmlItem' when calling createXmlItem");
+    }
+    
+    // create path and map variables
+    String localVarPath = "/fake/create_xml_item";
+
+    // query params
+    List<Pair> localVarQueryParams = new ArrayList<Pair>();
+    List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
+    Map<String, String> localVarHeaderParams = new HashMap<String, String>();
+    Map<String, Object> localVarFormParams = new HashMap<String, Object>();
+
+
+    
+    
+    final String[] localVarAccepts = {
+      
+    };
+    final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+
+    final String[] localVarContentTypes = {
+      "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"
+    };
+    final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+
+    String[] localVarAuthNames = new String[] {  };
+
+
+    apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, null);
+  }
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/jersey1/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/jersey1/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4f4b6ea67ed9e18bfb1d94056c1cf56483e41b8
--- /dev/null
+++ b/samples/client/petstore/java/jersey1/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,809 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/jersey1/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/jersey1/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/jersey1/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/jersey2-java6/docs/FakeApi.md b/samples/client/petstore/java/jersey2-java6/docs/FakeApi.md
index 8e3385cc83d1b16182f98e5d2f0cd260c8b7cfd2..5b7781b11720beaab7761c0eaa3e63326d606588 100644
--- a/samples/client/petstore/java/jersey2-java6/docs/FakeApi.md
+++ b/samples/client/petstore/java/jersey2-java6/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/jersey2-java6/docs/XmlItem.md b/samples/client/petstore/java/jersey2-java6/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/jersey2-java6/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/jersey2-java6/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/jersey2-java6/src/main/java/org/openapitools/client/api/FakeApi.java
index 2fbd63cfabfeed001b02c5d39f75dab05853233a..7ee000303b9fe1fbd6e05925d83ba52c8e22efb5 100644
--- a/samples/client/petstore/java/jersey2-java6/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/jersey2-java6/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -16,6 +16,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -42,6 +43,57 @@ public class FakeApi {
     this.apiClient = apiClient;
   }
 
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @throws ApiException if fails to make API call
+   */
+  public void createXmlItem(XmlItem xmlItem) throws ApiException {
+
+    createXmlItemWithHttpInfo(xmlItem);
+  }
+
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @throws ApiException if fails to make API call
+   */
+  public ApiResponse<Void> createXmlItemWithHttpInfo(XmlItem xmlItem) throws ApiException {
+    Object localVarPostBody = xmlItem;
+    
+    // verify the required parameter 'xmlItem' is set
+    if (xmlItem == null) {
+      throw new ApiException(400, "Missing the required parameter 'xmlItem' when calling createXmlItem");
+    }
+    
+    // create path and map variables
+    String localVarPath = "/fake/create_xml_item";
+
+    // query params
+    List<Pair> localVarQueryParams = new ArrayList<Pair>();
+    Map<String, String> localVarHeaderParams = new HashMap<String, String>();
+    Map<String, Object> localVarFormParams = new HashMap<String, Object>();
+
+
+    
+    
+    final String[] localVarAccepts = {
+      
+    };
+    final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+
+    final String[] localVarContentTypes = {
+      "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"
+    };
+    final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+
+    String[] localVarAuthNames = new String[] {  };
+
+
+    return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, null);
+  }
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/jersey2-java6/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/jersey2-java6/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..e191a5b650049b8bc5dcc70454cea6e8e8202008
--- /dev/null
+++ b/samples/client/petstore/java/jersey2-java6/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,808 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import org.apache.commons.lang3.ObjectUtils;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+  if (this == o) {
+    return true;
+  }
+  if (o == null || getClass() != o.getClass()) {
+    return false;
+  }
+    XmlItem xmlItem = (XmlItem) o;
+    return ObjectUtils.equals(this.attributeString, xmlItem.attributeString) &&
+    ObjectUtils.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+    ObjectUtils.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+    ObjectUtils.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+    ObjectUtils.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+    ObjectUtils.equals(this.nameString, xmlItem.nameString) &&
+    ObjectUtils.equals(this.nameNumber, xmlItem.nameNumber) &&
+    ObjectUtils.equals(this.nameInteger, xmlItem.nameInteger) &&
+    ObjectUtils.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+    ObjectUtils.equals(this.nameArray, xmlItem.nameArray) &&
+    ObjectUtils.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+    ObjectUtils.equals(this.prefixString, xmlItem.prefixString) &&
+    ObjectUtils.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+    ObjectUtils.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+    ObjectUtils.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+    ObjectUtils.equals(this.prefixArray, xmlItem.prefixArray) &&
+    ObjectUtils.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+    ObjectUtils.equals(this.namespaceString, xmlItem.namespaceString) &&
+    ObjectUtils.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+    ObjectUtils.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+    ObjectUtils.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+    ObjectUtils.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+    ObjectUtils.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+    ObjectUtils.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+    ObjectUtils.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+    ObjectUtils.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+    ObjectUtils.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+    ObjectUtils.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+    ObjectUtils.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return ObjectUtils.hashCodeMulti(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/jersey2-java6/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/jersey2-java6/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/jersey2-java6/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/jersey2-java8/docs/FakeApi.md b/samples/client/petstore/java/jersey2-java8/docs/FakeApi.md
index 8e3385cc83d1b16182f98e5d2f0cd260c8b7cfd2..5b7781b11720beaab7761c0eaa3e63326d606588 100644
--- a/samples/client/petstore/java/jersey2-java8/docs/FakeApi.md
+++ b/samples/client/petstore/java/jersey2-java8/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/jersey2-java8/docs/XmlItem.md b/samples/client/petstore/java/jersey2-java8/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/jersey2-java8/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java
index 04f58bc0593d9905bbcb8ac620f2eaf2c1462466..7ed375ab1811f3453ef371aa0f082b136ccdeb41 100644
--- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -16,6 +16,7 @@ import java.time.LocalDate;
 import java.time.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -42,6 +43,57 @@ public class FakeApi {
     this.apiClient = apiClient;
   }
 
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @throws ApiException if fails to make API call
+   */
+  public void createXmlItem(XmlItem xmlItem) throws ApiException {
+
+    createXmlItemWithHttpInfo(xmlItem);
+  }
+
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @throws ApiException if fails to make API call
+   */
+  public ApiResponse<Void> createXmlItemWithHttpInfo(XmlItem xmlItem) throws ApiException {
+    Object localVarPostBody = xmlItem;
+    
+    // verify the required parameter 'xmlItem' is set
+    if (xmlItem == null) {
+      throw new ApiException(400, "Missing the required parameter 'xmlItem' when calling createXmlItem");
+    }
+    
+    // create path and map variables
+    String localVarPath = "/fake/create_xml_item";
+
+    // query params
+    List<Pair> localVarQueryParams = new ArrayList<Pair>();
+    Map<String, String> localVarHeaderParams = new HashMap<String, String>();
+    Map<String, Object> localVarFormParams = new HashMap<String, Object>();
+
+
+    
+    
+    final String[] localVarAccepts = {
+      
+    };
+    final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+
+    final String[] localVarContentTypes = {
+      "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"
+    };
+    final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+
+    String[] localVarAuthNames = new String[] {  };
+
+
+    return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, null);
+  }
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..53282f0b83d2fcac1f01acf44b6460c8759300e0
--- /dev/null
+++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,809 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/jersey2/docs/FakeApi.md b/samples/client/petstore/java/jersey2/docs/FakeApi.md
index 8e3385cc83d1b16182f98e5d2f0cd260c8b7cfd2..5b7781b11720beaab7761c0eaa3e63326d606588 100644
--- a/samples/client/petstore/java/jersey2/docs/FakeApi.md
+++ b/samples/client/petstore/java/jersey2/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/jersey2/docs/XmlItem.md b/samples/client/petstore/java/jersey2/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/jersey2/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/jersey2/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/jersey2/src/main/java/org/openapitools/client/api/FakeApi.java
index 2fbd63cfabfeed001b02c5d39f75dab05853233a..7ee000303b9fe1fbd6e05925d83ba52c8e22efb5 100644
--- a/samples/client/petstore/java/jersey2/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/jersey2/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -16,6 +16,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -42,6 +43,57 @@ public class FakeApi {
     this.apiClient = apiClient;
   }
 
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @throws ApiException if fails to make API call
+   */
+  public void createXmlItem(XmlItem xmlItem) throws ApiException {
+
+    createXmlItemWithHttpInfo(xmlItem);
+  }
+
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @throws ApiException if fails to make API call
+   */
+  public ApiResponse<Void> createXmlItemWithHttpInfo(XmlItem xmlItem) throws ApiException {
+    Object localVarPostBody = xmlItem;
+    
+    // verify the required parameter 'xmlItem' is set
+    if (xmlItem == null) {
+      throw new ApiException(400, "Missing the required parameter 'xmlItem' when calling createXmlItem");
+    }
+    
+    // create path and map variables
+    String localVarPath = "/fake/create_xml_item";
+
+    // query params
+    List<Pair> localVarQueryParams = new ArrayList<Pair>();
+    Map<String, String> localVarHeaderParams = new HashMap<String, String>();
+    Map<String, Object> localVarFormParams = new HashMap<String, Object>();
+
+
+    
+    
+    final String[] localVarAccepts = {
+      
+    };
+    final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+
+    final String[] localVarContentTypes = {
+      "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"
+    };
+    final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+
+    String[] localVarAuthNames = new String[] {  };
+
+
+    return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, null);
+  }
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/jersey2/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/jersey2/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4f4b6ea67ed9e18bfb1d94056c1cf56483e41b8
--- /dev/null
+++ b/samples/client/petstore/java/jersey2/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,809 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/jersey2/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/jersey2/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/jersey2/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/docs/FakeApi.md b/samples/client/petstore/java/okhttp-gson-parcelableModel/docs/FakeApi.md
index e0e16efbc00e37aca058641d2e6bb39122aa0211..6c99239a23be538d3e3972095abe20c7030fa1ad 100644
--- a/samples/client/petstore/java/okhttp-gson-parcelableModel/docs/FakeApi.md
+++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/docs/XmlItem.md b/samples/client/petstore/java/okhttp-gson-parcelableModel/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/api/FakeApi.java
index 5801aa71922d56dea0d713af470e247e08d13199..04400ca747ca93814baca37ace1036d78bf14170 100644
--- a/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -35,6 +35,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.lang.reflect.Type;
 import java.util.ArrayList;
@@ -61,6 +62,123 @@ public class FakeApi {
         this.apiClient = apiClient;
     }
 
+    /**
+     * Build call for createXmlItem
+     * @param xmlItem XmlItem Body (required)
+     * @param progressListener Progress listener
+     * @param progressRequestListener Progress request listener
+     * @return Call to execute
+     * @throws ApiException If fail to serialize the request body object
+     */
+    public com.squareup.okhttp.Call createXmlItemCall(XmlItem xmlItem, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
+        Object localVarPostBody = xmlItem;
+
+        // create path and map variables
+        String localVarPath = "/fake/create_xml_item";
+
+        List<Pair> localVarQueryParams = new ArrayList<Pair>();
+        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
+        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
+        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
+        final String[] localVarAccepts = {
+            
+        };
+        final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+        if (localVarAccept != null) {
+            localVarHeaderParams.put("Accept", localVarAccept);
+        }
+
+        final String[] localVarContentTypes = {
+            "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"
+        };
+        final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+        localVarHeaderParams.put("Content-Type", localVarContentType);
+
+        if (progressListener != null) {
+            apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() {
+                @Override
+                public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException {
+                    com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request());
+                    return originalResponse.newBuilder()
+                    .body(new ProgressResponseBody(originalResponse.body(), progressListener))
+                    .build();
+                }
+            });
+        }
+
+        String[] localVarAuthNames = new String[] {  };
+        return apiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, progressRequestListener);
+    }
+
+    @SuppressWarnings("rawtypes")
+    private com.squareup.okhttp.Call createXmlItemValidateBeforeCall(XmlItem xmlItem, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
+        
+        // verify the required parameter 'xmlItem' is set
+        if (xmlItem == null) {
+            throw new ApiException("Missing the required parameter 'xmlItem' when calling createXmlItem(Async)");
+        }
+        
+
+        com.squareup.okhttp.Call call = createXmlItemCall(xmlItem, progressListener, progressRequestListener);
+        return call;
+
+    }
+
+    /**
+     * creates an XmlItem
+     * this route creates an XmlItem
+     * @param xmlItem XmlItem Body (required)
+     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+     */
+    public void createXmlItem(XmlItem xmlItem) throws ApiException {
+        createXmlItemWithHttpInfo(xmlItem);
+    }
+
+    /**
+     * creates an XmlItem
+     * this route creates an XmlItem
+     * @param xmlItem XmlItem Body (required)
+     * @return ApiResponse&lt;Void&gt;
+     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+     */
+    public ApiResponse<Void> createXmlItemWithHttpInfo(XmlItem xmlItem) throws ApiException {
+        com.squareup.okhttp.Call call = createXmlItemValidateBeforeCall(xmlItem, null, null);
+        return apiClient.execute(call);
+    }
+
+    /**
+     * creates an XmlItem (asynchronously)
+     * this route creates an XmlItem
+     * @param xmlItem XmlItem Body (required)
+     * @param callback The callback to be executed when the API call finishes
+     * @return The request call
+     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+     */
+    public com.squareup.okhttp.Call createXmlItemAsync(XmlItem xmlItem, final ApiCallback<Void> callback) throws ApiException {
+
+        ProgressResponseBody.ProgressListener progressListener = null;
+        ProgressRequestBody.ProgressRequestListener progressRequestListener = null;
+
+        if (callback != null) {
+            progressListener = new ProgressResponseBody.ProgressListener() {
+                @Override
+                public void update(long bytesRead, long contentLength, boolean done) {
+                    callback.onDownloadProgress(bytesRead, contentLength, done);
+                }
+            };
+
+            progressRequestListener = new ProgressRequestBody.ProgressRequestListener() {
+                @Override
+                public void onRequestProgress(long bytesWritten, long contentLength, boolean done) {
+                    callback.onUploadProgress(bytesWritten, contentLength, done);
+                }
+            };
+        }
+
+        com.squareup.okhttp.Call call = createXmlItemValidateBeforeCall(xmlItem, progressListener, progressRequestListener);
+        apiClient.executeAsync(call, callback);
+        return call;
+    }
     /**
      * Build call for fakeOuterBooleanSerialize
      * @param body Input boolean as post body (optional)
diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..9e83f75a50152e123505d17bfe2a46685c1bf545
--- /dev/null
+++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,922 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import android.os.Parcelable;
+import android.os.Parcel;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem implements Parcelable {
+  public static final String SERIALIZED_NAME_ATTRIBUTE_STRING = "attribute_string";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_STRING)
+  private String attributeString;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_NUMBER = "attribute_number";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_NUMBER)
+  private BigDecimal attributeNumber;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_INTEGER = "attribute_integer";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_INTEGER)
+  private Integer attributeInteger;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_BOOLEAN = "attribute_boolean";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_BOOLEAN)
+  private Boolean attributeBoolean;
+
+  public static final String SERIALIZED_NAME_WRAPPED_ARRAY = "wrapped_array";
+  @SerializedName(SERIALIZED_NAME_WRAPPED_ARRAY)
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_STRING = "name_string";
+  @SerializedName(SERIALIZED_NAME_NAME_STRING)
+  private String nameString;
+
+  public static final String SERIALIZED_NAME_NAME_NUMBER = "name_number";
+  @SerializedName(SERIALIZED_NAME_NAME_NUMBER)
+  private BigDecimal nameNumber;
+
+  public static final String SERIALIZED_NAME_NAME_INTEGER = "name_integer";
+  @SerializedName(SERIALIZED_NAME_NAME_INTEGER)
+  private Integer nameInteger;
+
+  public static final String SERIALIZED_NAME_NAME_BOOLEAN = "name_boolean";
+  @SerializedName(SERIALIZED_NAME_NAME_BOOLEAN)
+  private Boolean nameBoolean;
+
+  public static final String SERIALIZED_NAME_NAME_ARRAY = "name_array";
+  @SerializedName(SERIALIZED_NAME_NAME_ARRAY)
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_WRAPPED_ARRAY = "name_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAME_WRAPPED_ARRAY)
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_STRING = "prefix_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_STRING)
+  private String prefixString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NUMBER = "prefix_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NUMBER)
+  private BigDecimal prefixNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_INTEGER = "prefix_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_INTEGER)
+  private Integer prefixInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_BOOLEAN = "prefix_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_BOOLEAN)
+  private Boolean prefixBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_ARRAY = "prefix_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_ARRAY)
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY = "prefix_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY)
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_STRING = "namespace_string";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_STRING)
+  private String namespaceString;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_NUMBER = "namespace_number";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_NUMBER)
+  private BigDecimal namespaceNumber;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_INTEGER = "namespace_integer";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_INTEGER)
+  private Integer namespaceInteger;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_BOOLEAN = "namespace_boolean";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_BOOLEAN)
+  private Boolean namespaceBoolean;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_ARRAY = "namespace_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_ARRAY)
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY = "namespace_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY)
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_STRING = "prefix_ns_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_STRING)
+  private String prefixNsString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_NUMBER = "prefix_ns_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_NUMBER)
+  private BigDecimal prefixNsNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_INTEGER = "prefix_ns_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_INTEGER)
+  private Integer prefixNsInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_BOOLEAN = "prefix_ns_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_BOOLEAN)
+  private Boolean prefixNsBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_ARRAY = "prefix_ns_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_ARRAY)
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY = "prefix_ns_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY)
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem() {
+  }
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+
+  public void writeToParcel(Parcel out, int flags) {
+    out.writeValue(attributeString);
+    out.writeValue(attributeNumber);
+    out.writeValue(attributeInteger);
+    out.writeValue(attributeBoolean);
+    out.writeValue(wrappedArray);
+    out.writeValue(nameString);
+    out.writeValue(nameNumber);
+    out.writeValue(nameInteger);
+    out.writeValue(nameBoolean);
+    out.writeValue(nameArray);
+    out.writeValue(nameWrappedArray);
+    out.writeValue(prefixString);
+    out.writeValue(prefixNumber);
+    out.writeValue(prefixInteger);
+    out.writeValue(prefixBoolean);
+    out.writeValue(prefixArray);
+    out.writeValue(prefixWrappedArray);
+    out.writeValue(namespaceString);
+    out.writeValue(namespaceNumber);
+    out.writeValue(namespaceInteger);
+    out.writeValue(namespaceBoolean);
+    out.writeValue(namespaceArray);
+    out.writeValue(namespaceWrappedArray);
+    out.writeValue(prefixNsString);
+    out.writeValue(prefixNsNumber);
+    out.writeValue(prefixNsInteger);
+    out.writeValue(prefixNsBoolean);
+    out.writeValue(prefixNsArray);
+    out.writeValue(prefixNsWrappedArray);
+  }
+
+  XmlItem(Parcel in) {
+    attributeString = (String)in.readValue(null);
+    attributeNumber = (BigDecimal)in.readValue(BigDecimal.class.getClassLoader());
+    attributeInteger = (Integer)in.readValue(null);
+    attributeBoolean = (Boolean)in.readValue(null);
+    wrappedArray = (List<Integer>)in.readValue(null);
+    nameString = (String)in.readValue(null);
+    nameNumber = (BigDecimal)in.readValue(BigDecimal.class.getClassLoader());
+    nameInteger = (Integer)in.readValue(null);
+    nameBoolean = (Boolean)in.readValue(null);
+    nameArray = (List<Integer>)in.readValue(null);
+    nameWrappedArray = (List<Integer>)in.readValue(null);
+    prefixString = (String)in.readValue(null);
+    prefixNumber = (BigDecimal)in.readValue(BigDecimal.class.getClassLoader());
+    prefixInteger = (Integer)in.readValue(null);
+    prefixBoolean = (Boolean)in.readValue(null);
+    prefixArray = (List<Integer>)in.readValue(null);
+    prefixWrappedArray = (List<Integer>)in.readValue(null);
+    namespaceString = (String)in.readValue(null);
+    namespaceNumber = (BigDecimal)in.readValue(BigDecimal.class.getClassLoader());
+    namespaceInteger = (Integer)in.readValue(null);
+    namespaceBoolean = (Boolean)in.readValue(null);
+    namespaceArray = (List<Integer>)in.readValue(null);
+    namespaceWrappedArray = (List<Integer>)in.readValue(null);
+    prefixNsString = (String)in.readValue(null);
+    prefixNsNumber = (BigDecimal)in.readValue(BigDecimal.class.getClassLoader());
+    prefixNsInteger = (Integer)in.readValue(null);
+    prefixNsBoolean = (Boolean)in.readValue(null);
+    prefixNsArray = (List<Integer>)in.readValue(null);
+    prefixNsWrappedArray = (List<Integer>)in.readValue(null);
+  }
+
+  public int describeContents() {
+    return 0;
+  }
+
+  public static final Parcelable.Creator<XmlItem> CREATOR = new Parcelable.Creator<XmlItem>() {
+    public XmlItem createFromParcel(Parcel in) {
+      return new XmlItem(in);
+    }
+    public XmlItem[] newArray(int size) {
+      return new XmlItem[size];
+    }
+  };
+}
+
diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..5e861e18621032d0040d0d689c62261e02f762c2
--- /dev/null
+++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,278 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md b/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md
index e0e16efbc00e37aca058641d2e6bb39122aa0211..6c99239a23be538d3e3972095abe20c7030fa1ad 100644
--- a/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md
+++ b/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/okhttp-gson/docs/XmlItem.md b/samples/client/petstore/java/okhttp-gson/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/okhttp-gson/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java
index 5801aa71922d56dea0d713af470e247e08d13199..04400ca747ca93814baca37ace1036d78bf14170 100644
--- a/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -35,6 +35,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.lang.reflect.Type;
 import java.util.ArrayList;
@@ -61,6 +62,123 @@ public class FakeApi {
         this.apiClient = apiClient;
     }
 
+    /**
+     * Build call for createXmlItem
+     * @param xmlItem XmlItem Body (required)
+     * @param progressListener Progress listener
+     * @param progressRequestListener Progress request listener
+     * @return Call to execute
+     * @throws ApiException If fail to serialize the request body object
+     */
+    public com.squareup.okhttp.Call createXmlItemCall(XmlItem xmlItem, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
+        Object localVarPostBody = xmlItem;
+
+        // create path and map variables
+        String localVarPath = "/fake/create_xml_item";
+
+        List<Pair> localVarQueryParams = new ArrayList<Pair>();
+        List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
+        Map<String, String> localVarHeaderParams = new HashMap<String, String>();
+        Map<String, Object> localVarFormParams = new HashMap<String, Object>();
+        final String[] localVarAccepts = {
+            
+        };
+        final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+        if (localVarAccept != null) {
+            localVarHeaderParams.put("Accept", localVarAccept);
+        }
+
+        final String[] localVarContentTypes = {
+            "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"
+        };
+        final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+        localVarHeaderParams.put("Content-Type", localVarContentType);
+
+        if (progressListener != null) {
+            apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() {
+                @Override
+                public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException {
+                    com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request());
+                    return originalResponse.newBuilder()
+                    .body(new ProgressResponseBody(originalResponse.body(), progressListener))
+                    .build();
+                }
+            });
+        }
+
+        String[] localVarAuthNames = new String[] {  };
+        return apiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, progressRequestListener);
+    }
+
+    @SuppressWarnings("rawtypes")
+    private com.squareup.okhttp.Call createXmlItemValidateBeforeCall(XmlItem xmlItem, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
+        
+        // verify the required parameter 'xmlItem' is set
+        if (xmlItem == null) {
+            throw new ApiException("Missing the required parameter 'xmlItem' when calling createXmlItem(Async)");
+        }
+        
+
+        com.squareup.okhttp.Call call = createXmlItemCall(xmlItem, progressListener, progressRequestListener);
+        return call;
+
+    }
+
+    /**
+     * creates an XmlItem
+     * this route creates an XmlItem
+     * @param xmlItem XmlItem Body (required)
+     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+     */
+    public void createXmlItem(XmlItem xmlItem) throws ApiException {
+        createXmlItemWithHttpInfo(xmlItem);
+    }
+
+    /**
+     * creates an XmlItem
+     * this route creates an XmlItem
+     * @param xmlItem XmlItem Body (required)
+     * @return ApiResponse&lt;Void&gt;
+     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+     */
+    public ApiResponse<Void> createXmlItemWithHttpInfo(XmlItem xmlItem) throws ApiException {
+        com.squareup.okhttp.Call call = createXmlItemValidateBeforeCall(xmlItem, null, null);
+        return apiClient.execute(call);
+    }
+
+    /**
+     * creates an XmlItem (asynchronously)
+     * this route creates an XmlItem
+     * @param xmlItem XmlItem Body (required)
+     * @param callback The callback to be executed when the API call finishes
+     * @return The request call
+     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+     */
+    public com.squareup.okhttp.Call createXmlItemAsync(XmlItem xmlItem, final ApiCallback<Void> callback) throws ApiException {
+
+        ProgressResponseBody.ProgressListener progressListener = null;
+        ProgressRequestBody.ProgressRequestListener progressRequestListener = null;
+
+        if (callback != null) {
+            progressListener = new ProgressResponseBody.ProgressListener() {
+                @Override
+                public void update(long bytesRead, long contentLength, boolean done) {
+                    callback.onDownloadProgress(bytesRead, contentLength, done);
+                }
+            };
+
+            progressRequestListener = new ProgressRequestBody.ProgressRequestListener() {
+                @Override
+                public void onRequestProgress(long bytesWritten, long contentLength, boolean done) {
+                    callback.onUploadProgress(bytesWritten, contentLength, done);
+                }
+            };
+        }
+
+        com.squareup.okhttp.Call call = createXmlItemValidateBeforeCall(xmlItem, progressListener, progressRequestListener);
+        apiClient.executeAsync(call, callback);
+        return call;
+    }
     /**
      * Build call for fakeOuterBooleanSerialize
      * @param body Input boolean as post body (optional)
diff --git a/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f54c9c0e9583b10f7edaba097024c35f0235619
--- /dev/null
+++ b/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,841 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  public static final String SERIALIZED_NAME_ATTRIBUTE_STRING = "attribute_string";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_STRING)
+  private String attributeString;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_NUMBER = "attribute_number";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_NUMBER)
+  private BigDecimal attributeNumber;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_INTEGER = "attribute_integer";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_INTEGER)
+  private Integer attributeInteger;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_BOOLEAN = "attribute_boolean";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_BOOLEAN)
+  private Boolean attributeBoolean;
+
+  public static final String SERIALIZED_NAME_WRAPPED_ARRAY = "wrapped_array";
+  @SerializedName(SERIALIZED_NAME_WRAPPED_ARRAY)
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_STRING = "name_string";
+  @SerializedName(SERIALIZED_NAME_NAME_STRING)
+  private String nameString;
+
+  public static final String SERIALIZED_NAME_NAME_NUMBER = "name_number";
+  @SerializedName(SERIALIZED_NAME_NAME_NUMBER)
+  private BigDecimal nameNumber;
+
+  public static final String SERIALIZED_NAME_NAME_INTEGER = "name_integer";
+  @SerializedName(SERIALIZED_NAME_NAME_INTEGER)
+  private Integer nameInteger;
+
+  public static final String SERIALIZED_NAME_NAME_BOOLEAN = "name_boolean";
+  @SerializedName(SERIALIZED_NAME_NAME_BOOLEAN)
+  private Boolean nameBoolean;
+
+  public static final String SERIALIZED_NAME_NAME_ARRAY = "name_array";
+  @SerializedName(SERIALIZED_NAME_NAME_ARRAY)
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_WRAPPED_ARRAY = "name_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAME_WRAPPED_ARRAY)
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_STRING = "prefix_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_STRING)
+  private String prefixString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NUMBER = "prefix_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NUMBER)
+  private BigDecimal prefixNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_INTEGER = "prefix_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_INTEGER)
+  private Integer prefixInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_BOOLEAN = "prefix_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_BOOLEAN)
+  private Boolean prefixBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_ARRAY = "prefix_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_ARRAY)
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY = "prefix_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY)
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_STRING = "namespace_string";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_STRING)
+  private String namespaceString;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_NUMBER = "namespace_number";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_NUMBER)
+  private BigDecimal namespaceNumber;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_INTEGER = "namespace_integer";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_INTEGER)
+  private Integer namespaceInteger;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_BOOLEAN = "namespace_boolean";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_BOOLEAN)
+  private Boolean namespaceBoolean;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_ARRAY = "namespace_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_ARRAY)
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY = "namespace_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY)
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_STRING = "prefix_ns_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_STRING)
+  private String prefixNsString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_NUMBER = "prefix_ns_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_NUMBER)
+  private BigDecimal prefixNsNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_INTEGER = "prefix_ns_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_INTEGER)
+  private Integer prefixNsInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_BOOLEAN = "prefix_ns_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_BOOLEAN)
+  private Boolean prefixNsBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_ARRAY = "prefix_ns_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_ARRAY)
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY = "prefix_ns_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY)
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/okhttp-gson/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/okhttp-gson/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..5e861e18621032d0040d0d689c62261e02f762c2
--- /dev/null
+++ b/samples/client/petstore/java/okhttp-gson/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,278 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured/docs/FakeApi.md b/samples/client/petstore/java/rest-assured/docs/FakeApi.md
index 8cc93c83d8b361d9adeb82cc43f11bb9cbc1fee7..cda10bf74d5ed7d4ba8b77191cbf6d8a25d53906 100644
--- a/samples/client/petstore/java/rest-assured/docs/FakeApi.md
+++ b/samples/client/petstore/java/rest-assured/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,48 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+                () -> new RequestSpecBuilder()
+                        .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.createXmlItem()
+    .body(xmlItem).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/rest-assured/docs/XmlItem.md b/samples/client/petstore/java/rest-assured/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/api/FakeApi.java
index 00916c6d271076617c47d1665e71fa0ae0569e11..b42f31ed7322abd2053ca553c655a19f177682c3 100644
--- a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -22,6 +22,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -57,6 +58,16 @@ public class FakeApi {
     }
 
 
+    @ApiOperation(value = "creates an XmlItem",
+            notes = "this route creates an XmlItem",
+            nickname = "createXmlItem",
+            tags = { "fake" })
+    @ApiResponses(value = { 
+            @ApiResponse(code = 200, message = "successful operation")  })
+    public CreateXmlItemOper createXmlItem() {
+        return new CreateXmlItemOper(reqSpec);
+    }
+
     @ApiOperation(value = "",
             notes = "Test serialization of outer boolean types",
             nickname = "fakeOuterBooleanSerialize",
@@ -189,6 +200,66 @@ public class FakeApi {
         return this;
     }
 
+    /**
+     * creates an XmlItem
+     * this route creates an XmlItem
+     *
+     * @see #body XmlItem Body (required)
+     */
+    public static class CreateXmlItemOper {
+
+        public static final Method REQ_METHOD = POST;
+        public static final String REQ_URI = "/fake/create_xml_item";
+
+        private RequestSpecBuilder reqSpec;
+        private ResponseSpecBuilder respSpec;
+
+        public CreateXmlItemOper(RequestSpecBuilder reqSpec) {
+            this.reqSpec = reqSpec;
+            reqSpec.setContentType("application/xml");
+            reqSpec.setAccept("application/json");
+            this.respSpec = new ResponseSpecBuilder();
+        }
+
+        /**
+         * POST /fake/create_xml_item
+         * @param handler handler
+         * @param <T> type
+         * @return type
+         */
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+         /**
+         * @param xmlItem (XmlItem) XmlItem Body (required)
+         * @return operation
+         */
+        public CreateXmlItemOper body(XmlItem xmlItem) {
+            reqSpec.setBody(xmlItem);
+            return this;
+        }
+
+        /**
+         * Customise request specification
+         * @param consumer consumer
+         * @return operation
+         */
+        public CreateXmlItemOper reqSpec(Consumer<RequestSpecBuilder> consumer) {
+            consumer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customise response specification
+         * @param consumer consumer
+         * @return operation
+         */
+        public CreateXmlItemOper respSpec(Consumer<ResponseSpecBuilder> consumer) {
+            consumer.accept(respSpec);
+            return this;
+        }
+    }
     /**
      * 
      * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..38016eacbae5c92e226e2223f2a4a7de9560457b
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,841 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  public static final String SERIALIZED_NAME_ATTRIBUTE_STRING = "attribute_string";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_STRING)
+  private String attributeString;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_NUMBER = "attribute_number";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_NUMBER)
+  private BigDecimal attributeNumber;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_INTEGER = "attribute_integer";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_INTEGER)
+  private Integer attributeInteger;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_BOOLEAN = "attribute_boolean";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_BOOLEAN)
+  private Boolean attributeBoolean;
+
+  public static final String SERIALIZED_NAME_WRAPPED_ARRAY = "wrapped_array";
+  @SerializedName(SERIALIZED_NAME_WRAPPED_ARRAY)
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_STRING = "name_string";
+  @SerializedName(SERIALIZED_NAME_NAME_STRING)
+  private String nameString;
+
+  public static final String SERIALIZED_NAME_NAME_NUMBER = "name_number";
+  @SerializedName(SERIALIZED_NAME_NAME_NUMBER)
+  private BigDecimal nameNumber;
+
+  public static final String SERIALIZED_NAME_NAME_INTEGER = "name_integer";
+  @SerializedName(SERIALIZED_NAME_NAME_INTEGER)
+  private Integer nameInteger;
+
+  public static final String SERIALIZED_NAME_NAME_BOOLEAN = "name_boolean";
+  @SerializedName(SERIALIZED_NAME_NAME_BOOLEAN)
+  private Boolean nameBoolean;
+
+  public static final String SERIALIZED_NAME_NAME_ARRAY = "name_array";
+  @SerializedName(SERIALIZED_NAME_NAME_ARRAY)
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_WRAPPED_ARRAY = "name_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAME_WRAPPED_ARRAY)
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_STRING = "prefix_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_STRING)
+  private String prefixString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NUMBER = "prefix_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NUMBER)
+  private BigDecimal prefixNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_INTEGER = "prefix_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_INTEGER)
+  private Integer prefixInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_BOOLEAN = "prefix_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_BOOLEAN)
+  private Boolean prefixBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_ARRAY = "prefix_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_ARRAY)
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY = "prefix_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY)
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_STRING = "namespace_string";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_STRING)
+  private String namespaceString;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_NUMBER = "namespace_number";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_NUMBER)
+  private BigDecimal namespaceNumber;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_INTEGER = "namespace_integer";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_INTEGER)
+  private Integer namespaceInteger;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_BOOLEAN = "namespace_boolean";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_BOOLEAN)
+  private Boolean namespaceBoolean;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_ARRAY = "namespace_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_ARRAY)
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY = "namespace_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY)
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_STRING = "prefix_ns_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_STRING)
+  private String prefixNsString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_NUMBER = "prefix_ns_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_NUMBER)
+  private BigDecimal prefixNsNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_INTEGER = "prefix_ns_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_INTEGER)
+  private Integer prefixNsInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_BOOLEAN = "prefix_ns_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_BOOLEAN)
+  private Boolean prefixNsBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_ARRAY = "prefix_ns_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_ARRAY)
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY = "prefix_ns_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY)
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean isPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..5e861e18621032d0040d0d689c62261e02f762c2
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,278 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/resteasy/docs/FakeApi.md b/samples/client/petstore/java/resteasy/docs/FakeApi.md
index 8e3385cc83d1b16182f98e5d2f0cd260c8b7cfd2..5b7781b11720beaab7761c0eaa3e63326d606588 100644
--- a/samples/client/petstore/java/resteasy/docs/FakeApi.md
+++ b/samples/client/petstore/java/resteasy/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/resteasy/docs/XmlItem.md b/samples/client/petstore/java/resteasy/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/resteasy/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/resteasy/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/resteasy/src/main/java/org/openapitools/client/api/FakeApi.java
index e0640c57d65bcd4ad3d268f3229527aa4db9942d..753f181e9719e02e44636a3fb408b079e151041e 100644
--- a/samples/client/petstore/java/resteasy/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/resteasy/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -15,6 +15,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -41,6 +42,46 @@ public class FakeApi {
     this.apiClient = apiClient;
   }
 
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @throws ApiException if fails to make API call
+   */
+  public void createXmlItem(XmlItem xmlItem) throws ApiException {
+    Object localVarPostBody = xmlItem;
+    
+    // verify the required parameter 'xmlItem' is set
+    if (xmlItem == null) {
+      throw new ApiException(400, "Missing the required parameter 'xmlItem' when calling createXmlItem");
+    }
+    
+    // create path and map variables
+    String localVarPath = "/fake/create_xml_item".replaceAll("\\{format\\}","json");
+
+    // query params
+    List<Pair> localVarQueryParams = new ArrayList<Pair>();
+    Map<String, String> localVarHeaderParams = new HashMap<String, String>();
+    Map<String, Object> localVarFormParams = new HashMap<String, Object>();
+
+
+    
+    
+    final String[] localVarAccepts = {
+      
+    };
+    final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+
+    final String[] localVarContentTypes = {
+      "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"
+    };
+    final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+
+    String[] localVarAuthNames = new String[] {  };
+
+
+    apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, null);
+  }
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/resteasy/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/resteasy/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4f4b6ea67ed9e18bfb1d94056c1cf56483e41b8
--- /dev/null
+++ b/samples/client/petstore/java/resteasy/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,809 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/resteasy/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/resteasy/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/resteasy/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/resttemplate-withXml/docs/FakeApi.md b/samples/client/petstore/java/resttemplate-withXml/docs/FakeApi.md
index 8e3385cc83d1b16182f98e5d2f0cd260c8b7cfd2..5b7781b11720beaab7761c0eaa3e63326d606588 100644
--- a/samples/client/petstore/java/resttemplate-withXml/docs/FakeApi.md
+++ b/samples/client/petstore/java/resttemplate-withXml/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/resttemplate-withXml/docs/XmlItem.md b/samples/client/petstore/java/resttemplate-withXml/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/resttemplate-withXml/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/api/FakeApi.java
index caf022bdd19e630035571c0bc0c8ac6c1a0df9ba..333d47ce5219fd480d2676b79ffe47ae847b43ea 100644
--- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -10,6 +10,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -53,6 +54,39 @@ public class FakeApi {
         this.apiClient = apiClient;
     }
 
+    /**
+     * creates an XmlItem
+     * this route creates an XmlItem
+     * <p><b>200</b> - successful operation
+     * @param xmlItem XmlItem Body
+     * @throws RestClientException if an error occurs while attempting to invoke the API
+     */
+    public void createXmlItem(XmlItem xmlItem) throws RestClientException {
+        Object postBody = xmlItem;
+        
+        // verify the required parameter 'xmlItem' is set
+        if (xmlItem == null) {
+            throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'xmlItem' when calling createXmlItem");
+        }
+        
+        String path = UriComponentsBuilder.fromPath("/fake/create_xml_item").build().toUriString();
+        
+        final MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<String, String>();
+        final HttpHeaders headerParams = new HttpHeaders();
+        final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
+
+        final String[] accepts = { };
+        final List<MediaType> accept = apiClient.selectHeaderAccept(accepts);
+        final String[] contentTypes = { 
+            "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"
+        };
+        final MediaType contentType = apiClient.selectHeaderContentType(contentTypes);
+
+        String[] authNames = new String[] {  };
+
+        ParameterizedTypeReference<Void> returnType = new ParameterizedTypeReference<Void>() {};
+        apiClient.invokeAPI(path, HttpMethod.POST, queryParams, postBody, headerParams, formParams, accept, contentType, authNames, returnType);
+    }
     /**
      * 
      * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..47009d6299ad0c74d9806a6746c1a9c43bf7db6f
--- /dev/null
+++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,905 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import com.fasterxml.jackson.dataformat.xml.annotation.*;
+import javax.xml.bind.annotation.*;
+
+/**
+ * XmlItem
+ */
+
+@XmlRootElement(namespace="http://a.com/schema", name = "XmlItem")
+@XmlAccessorType(XmlAccessType.FIELD)
+@JacksonXmlRootElement(namespace="http://a.com/schema", localName = "XmlItem")
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  @JacksonXmlProperty(isAttribute = true, localName = "attribute_string")
+  @XmlAttribute(name = "attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  @JacksonXmlProperty(isAttribute = true, localName = "attribute_number")
+  @XmlAttribute(name = "attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  @JacksonXmlProperty(isAttribute = true, localName = "attribute_integer")
+  @XmlAttribute(name = "attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  @JacksonXmlProperty(isAttribute = true, localName = "attribute_boolean")
+  @XmlAttribute(name = "attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  // items.xmlName=
+  @JacksonXmlElementWrapper(useWrapping = true, localName = "wrappedArray")
+  // Is a container wrapped=true
+  // items.name=wrappedArray items.baseName=wrappedArray items.xmlName= items.xmlNamespace=
+  // items.example= items.type=Integer
+  @XmlElement(name = "wrappedArray")
+  @XmlElementWrapper(name = "wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_string")
+  @JacksonXmlProperty(localName = "xml_name_string")
+  @XmlElement(name = "xml_name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  @JacksonXmlProperty(localName = "xml_name_number")
+  @XmlElement(name = "xml_name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  @JacksonXmlProperty(localName = "xml_name_integer")
+  @XmlElement(name = "xml_name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  @JacksonXmlProperty(localName = "xml_name_boolean")
+  @XmlElement(name = "xml_name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  // Is a container wrapped=false
+  // items.name=nameArray items.baseName=nameArray items.xmlName=xml_name_array_item items.xmlNamespace=
+  // items.example= items.type=Integer
+  @XmlElement(name = "xml_name_array_item")
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_wrapped_array")
+  // items.xmlName=xml_name_wrapped_array_item
+  @JacksonXmlElementWrapper(useWrapping = true, localName = "xml_name_wrapped_array_item")
+  // Is a container wrapped=true
+  // items.name=nameWrappedArray items.baseName=nameWrappedArray items.xmlName=xml_name_wrapped_array_item items.xmlNamespace=
+  // items.example= items.type=Integer
+  @XmlElement(name = "xml_name_wrapped_array_item")
+  @XmlElementWrapper(name = "xml_name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_string")
+  @JacksonXmlProperty(localName = "prefix_string")
+  @XmlElement(name = "prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  @JacksonXmlProperty(localName = "prefix_number")
+  @XmlElement(name = "prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  @JacksonXmlProperty(localName = "prefix_integer")
+  @XmlElement(name = "prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  @JacksonXmlProperty(localName = "prefix_boolean")
+  @XmlElement(name = "prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  // Is a container wrapped=false
+  // items.name=prefixArray items.baseName=prefixArray items.xmlName= items.xmlNamespace=
+  // items.example= items.type=Integer
+  @XmlElement(name = "prefixArray")
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_wrapped_array")
+  // items.xmlName=
+  @JacksonXmlElementWrapper(useWrapping = true, localName = "prefixWrappedArray")
+  // Is a container wrapped=true
+  // items.name=prefixWrappedArray items.baseName=prefixWrappedArray items.xmlName= items.xmlNamespace=
+  // items.example= items.type=Integer
+  @XmlElement(name = "prefixWrappedArray")
+  @XmlElementWrapper(name = "prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_string")
+  @JacksonXmlProperty(namespace="http://a.com/schema", localName = "namespace_string")
+  @XmlElement(namespace="http://a.com/schema", name = "namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  @JacksonXmlProperty(namespace="http://b.com/schema", localName = "namespace_number")
+  @XmlElement(namespace="http://b.com/schema", name = "namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  @JacksonXmlProperty(namespace="http://c.com/schema", localName = "namespace_integer")
+  @XmlElement(namespace="http://c.com/schema", name = "namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  @JacksonXmlProperty(namespace="http://d.com/schema", localName = "namespace_boolean")
+  @XmlElement(namespace="http://d.com/schema", name = "namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  // Is a container wrapped=false
+  // items.name=namespaceArray items.baseName=namespaceArray items.xmlName= items.xmlNamespace=http://e.com/schema
+  // items.example= items.type=Integer
+  @XmlElement(namespace="http://e.com/schema", name = "namespaceArray")
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_wrapped_array")
+  // items.xmlName=
+  @JacksonXmlElementWrapper(useWrapping = true, namespace="http://f.com/schema", localName = "namespaceWrappedArray")
+  // Is a container wrapped=true
+  // items.name=namespaceWrappedArray items.baseName=namespaceWrappedArray items.xmlName= items.xmlNamespace=http://g.com/schema
+  // items.example= items.type=Integer
+  @XmlElement(namespace="http://g.com/schema", name = "namespaceWrappedArray")
+  @XmlElementWrapper(namespace="http://f.com/schema", name = "namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_string")
+  @JacksonXmlProperty(namespace="http://a.com/schema", localName = "prefix_ns_string")
+  @XmlElement(namespace="http://a.com/schema", name = "prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  @JacksonXmlProperty(namespace="http://b.com/schema", localName = "prefix_ns_number")
+  @XmlElement(namespace="http://b.com/schema", name = "prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  @JacksonXmlProperty(namespace="http://c.com/schema", localName = "prefix_ns_integer")
+  @XmlElement(namespace="http://c.com/schema", name = "prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  @JacksonXmlProperty(namespace="http://d.com/schema", localName = "prefix_ns_boolean")
+  @XmlElement(namespace="http://d.com/schema", name = "prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  // Is a container wrapped=false
+  // items.name=prefixNsArray items.baseName=prefixNsArray items.xmlName= items.xmlNamespace=http://e.com/schema
+  // items.example= items.type=Integer
+  @XmlElement(namespace="http://e.com/schema", name = "prefixNsArray")
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  // items.xmlName=
+  @JacksonXmlElementWrapper(useWrapping = true, namespace="http://f.com/schema", localName = "prefixNsWrappedArray")
+  // Is a container wrapped=true
+  // items.name=prefixNsWrappedArray items.baseName=prefixNsWrappedArray items.xmlName= items.xmlNamespace=http://g.com/schema
+  // items.example= items.type=Integer
+  @XmlElement(namespace="http://g.com/schema", name = "prefixNsWrappedArray")
+  @XmlElementWrapper(namespace="http://f.com/schema", name = "prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/resttemplate-withXml/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/resttemplate-withXml/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/resttemplate-withXml/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/resttemplate/docs/FakeApi.md b/samples/client/petstore/java/resttemplate/docs/FakeApi.md
index 8e3385cc83d1b16182f98e5d2f0cd260c8b7cfd2..5b7781b11720beaab7761c0eaa3e63326d606588 100644
--- a/samples/client/petstore/java/resttemplate/docs/FakeApi.md
+++ b/samples/client/petstore/java/resttemplate/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/resttemplate/docs/XmlItem.md b/samples/client/petstore/java/resttemplate/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/resttemplate/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/api/FakeApi.java
index caf022bdd19e630035571c0bc0c8ac6c1a0df9ba..333d47ce5219fd480d2676b79ffe47ae847b43ea 100644
--- a/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -10,6 +10,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -53,6 +54,39 @@ public class FakeApi {
         this.apiClient = apiClient;
     }
 
+    /**
+     * creates an XmlItem
+     * this route creates an XmlItem
+     * <p><b>200</b> - successful operation
+     * @param xmlItem XmlItem Body
+     * @throws RestClientException if an error occurs while attempting to invoke the API
+     */
+    public void createXmlItem(XmlItem xmlItem) throws RestClientException {
+        Object postBody = xmlItem;
+        
+        // verify the required parameter 'xmlItem' is set
+        if (xmlItem == null) {
+            throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'xmlItem' when calling createXmlItem");
+        }
+        
+        String path = UriComponentsBuilder.fromPath("/fake/create_xml_item").build().toUriString();
+        
+        final MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<String, String>();
+        final HttpHeaders headerParams = new HttpHeaders();
+        final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
+
+        final String[] accepts = { };
+        final List<MediaType> accept = apiClient.selectHeaderAccept(accepts);
+        final String[] contentTypes = { 
+            "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"
+        };
+        final MediaType contentType = apiClient.selectHeaderContentType(contentTypes);
+
+        String[] authNames = new String[] {  };
+
+        ParameterizedTypeReference<Void> returnType = new ParameterizedTypeReference<Void>() {};
+        apiClient.invokeAPI(path, HttpMethod.POST, queryParams, postBody, headerParams, formParams, accept, contentType, authNames, returnType);
+    }
     /**
      * 
      * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4f4b6ea67ed9e18bfb1d94056c1cf56483e41b8
--- /dev/null
+++ b/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,809 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/resttemplate/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/resttemplate/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/resttemplate/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/retrofit/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit/src/main/java/org/openapitools/client/api/FakeApi.java
index 81adce644d6cca2b307b569ed6c5f46367b36579..279f91bb9a9046ba9a66fcb52b3af1864a22739a 100644
--- a/samples/client/petstore/java/retrofit/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/retrofit/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -14,6 +14,7 @@ import org.openapitools.client.model.FileSchemaTestClass;
 import org.joda.time.LocalDate;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -21,6 +22,30 @@ import java.util.List;
 import java.util.Map;
 
 public interface FakeApi {
+  /**
+   * creates an XmlItem
+   * Sync method
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @return Void
+   */
+  
+  @POST("/fake/create_xml_item")
+  Void createXmlItem(
+    @retrofit.http.Body XmlItem xmlItem
+  );
+
+  /**
+   * creates an XmlItem
+   * Async method
+   * @param xmlItem XmlItem Body (required)
+   * @param cb callback method
+   */
+  
+  @POST("/fake/create_xml_item")
+  void createXmlItem(
+    @retrofit.http.Body XmlItem xmlItem, Callback<Void> cb
+  );
   /**
    * 
    * Sync method
diff --git a/samples/client/petstore/java/retrofit/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/retrofit/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f54c9c0e9583b10f7edaba097024c35f0235619
--- /dev/null
+++ b/samples/client/petstore/java/retrofit/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,841 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  public static final String SERIALIZED_NAME_ATTRIBUTE_STRING = "attribute_string";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_STRING)
+  private String attributeString;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_NUMBER = "attribute_number";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_NUMBER)
+  private BigDecimal attributeNumber;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_INTEGER = "attribute_integer";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_INTEGER)
+  private Integer attributeInteger;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_BOOLEAN = "attribute_boolean";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_BOOLEAN)
+  private Boolean attributeBoolean;
+
+  public static final String SERIALIZED_NAME_WRAPPED_ARRAY = "wrapped_array";
+  @SerializedName(SERIALIZED_NAME_WRAPPED_ARRAY)
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_STRING = "name_string";
+  @SerializedName(SERIALIZED_NAME_NAME_STRING)
+  private String nameString;
+
+  public static final String SERIALIZED_NAME_NAME_NUMBER = "name_number";
+  @SerializedName(SERIALIZED_NAME_NAME_NUMBER)
+  private BigDecimal nameNumber;
+
+  public static final String SERIALIZED_NAME_NAME_INTEGER = "name_integer";
+  @SerializedName(SERIALIZED_NAME_NAME_INTEGER)
+  private Integer nameInteger;
+
+  public static final String SERIALIZED_NAME_NAME_BOOLEAN = "name_boolean";
+  @SerializedName(SERIALIZED_NAME_NAME_BOOLEAN)
+  private Boolean nameBoolean;
+
+  public static final String SERIALIZED_NAME_NAME_ARRAY = "name_array";
+  @SerializedName(SERIALIZED_NAME_NAME_ARRAY)
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_WRAPPED_ARRAY = "name_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAME_WRAPPED_ARRAY)
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_STRING = "prefix_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_STRING)
+  private String prefixString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NUMBER = "prefix_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NUMBER)
+  private BigDecimal prefixNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_INTEGER = "prefix_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_INTEGER)
+  private Integer prefixInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_BOOLEAN = "prefix_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_BOOLEAN)
+  private Boolean prefixBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_ARRAY = "prefix_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_ARRAY)
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY = "prefix_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY)
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_STRING = "namespace_string";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_STRING)
+  private String namespaceString;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_NUMBER = "namespace_number";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_NUMBER)
+  private BigDecimal namespaceNumber;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_INTEGER = "namespace_integer";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_INTEGER)
+  private Integer namespaceInteger;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_BOOLEAN = "namespace_boolean";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_BOOLEAN)
+  private Boolean namespaceBoolean;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_ARRAY = "namespace_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_ARRAY)
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY = "namespace_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY)
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_STRING = "prefix_ns_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_STRING)
+  private String prefixNsString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_NUMBER = "prefix_ns_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_NUMBER)
+  private BigDecimal prefixNsNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_INTEGER = "prefix_ns_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_INTEGER)
+  private Integer prefixNsInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_BOOLEAN = "prefix_ns_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_BOOLEAN)
+  private Boolean prefixNsBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_ARRAY = "prefix_ns_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_ARRAY)
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY = "prefix_ns_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY)
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/retrofit/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/retrofit/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..5e861e18621032d0040d0d689c62261e02f762c2
--- /dev/null
+++ b/samples/client/petstore/java/retrofit/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,278 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/retrofit2-play24/docs/FakeApi.md b/samples/client/petstore/java/retrofit2-play24/docs/FakeApi.md
index 9a034514e7c58a190a983021afb6a288c558a0f1..c2d612a9fda693840a9b52bc1f524a1d50d80ca5 100644
--- a/samples/client/petstore/java/retrofit2-play24/docs/FakeApi.md
+++ b/samples/client/petstore/java/retrofit2-play24/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/retrofit2-play24/docs/XmlItem.md b/samples/client/petstore/java/retrofit2-play24/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2-play24/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/retrofit2-play24/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2-play24/src/main/java/org/openapitools/client/api/FakeApi.java
index b0deb92a1e75ce4d7d563366804a1002f170930d..158a7b06002380e593e103fb2dc9c00ef600cbe7 100644
--- a/samples/client/petstore/java/retrofit2-play24/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/retrofit2-play24/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -19,6 +19,7 @@ import java.time.LocalDate;
 import java.time.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -29,6 +30,20 @@ import play.libs.F;
 import retrofit2.Response;
 
 public interface FakeApi {
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @return Call&lt;Void&gt;
+   */
+  @Headers({
+    "Content-Type:application/xml"
+  })
+  @POST("fake/create_xml_item")
+  F.Promise<Response<Void>> createXmlItem(
+    @retrofit2.http.Body XmlItem xmlItem
+  );
+
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/retrofit2-play24/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/retrofit2-play24/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..12a4844941a6cf817ecd719c774fc03206e131b8
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2-play24/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,816 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/retrofit2-play24/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/retrofit2-play24/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2-play24/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/retrofit2-play25/docs/FakeApi.md b/samples/client/petstore/java/retrofit2-play25/docs/FakeApi.md
index 9a034514e7c58a190a983021afb6a288c558a0f1..c2d612a9fda693840a9b52bc1f524a1d50d80ca5 100644
--- a/samples/client/petstore/java/retrofit2-play25/docs/FakeApi.md
+++ b/samples/client/petstore/java/retrofit2-play25/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/retrofit2-play25/docs/XmlItem.md b/samples/client/petstore/java/retrofit2-play25/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2-play25/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/retrofit2-play25/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2-play25/src/main/java/org/openapitools/client/api/FakeApi.java
index 67a0e9189aa90a4f0b9c16b1fe5338ababa12e23..12e091d78eeac7c8329525e793f6e066574d41d6 100644
--- a/samples/client/petstore/java/retrofit2-play25/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/retrofit2-play25/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -19,6 +19,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -29,6 +30,20 @@ import java.util.concurrent.*;
 import retrofit2.Response;
 
 public interface FakeApi {
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @return Call&lt;Void&gt;
+   */
+  @Headers({
+    "Content-Type:application/xml"
+  })
+  @POST("fake/create_xml_item")
+  CompletionStage<Response<Void>> createXmlItem(
+    @retrofit2.http.Body XmlItem xmlItem
+  );
+
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/retrofit2-play25/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/retrofit2-play25/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..12a4844941a6cf817ecd719c774fc03206e131b8
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2-play25/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,816 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/retrofit2-play25/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/retrofit2-play25/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2-play25/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/retrofit2-play26/docs/FakeApi.md b/samples/client/petstore/java/retrofit2-play26/docs/FakeApi.md
index 9a034514e7c58a190a983021afb6a288c558a0f1..c2d612a9fda693840a9b52bc1f524a1d50d80ca5 100644
--- a/samples/client/petstore/java/retrofit2-play26/docs/FakeApi.md
+++ b/samples/client/petstore/java/retrofit2-play26/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/retrofit2-play26/docs/XmlItem.md b/samples/client/petstore/java/retrofit2-play26/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2-play26/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/retrofit2-play26/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2-play26/src/main/java/org/openapitools/client/api/FakeApi.java
index 67a0e9189aa90a4f0b9c16b1fe5338ababa12e23..12e091d78eeac7c8329525e793f6e066574d41d6 100644
--- a/samples/client/petstore/java/retrofit2-play26/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/retrofit2-play26/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -19,6 +19,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -29,6 +30,20 @@ import java.util.concurrent.*;
 import retrofit2.Response;
 
 public interface FakeApi {
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @return Call&lt;Void&gt;
+   */
+  @Headers({
+    "Content-Type:application/xml"
+  })
+  @POST("fake/create_xml_item")
+  CompletionStage<Response<Void>> createXmlItem(
+    @retrofit2.http.Body XmlItem xmlItem
+  );
+
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/retrofit2-play26/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/retrofit2-play26/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..12a4844941a6cf817ecd719c774fc03206e131b8
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2-play26/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,816 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/retrofit2-play26/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/retrofit2-play26/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2-play26/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/retrofit2/docs/FakeApi.md b/samples/client/petstore/java/retrofit2/docs/FakeApi.md
index 9a034514e7c58a190a983021afb6a288c558a0f1..c2d612a9fda693840a9b52bc1f524a1d50d80ca5 100644
--- a/samples/client/petstore/java/retrofit2/docs/FakeApi.md
+++ b/samples/client/petstore/java/retrofit2/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/retrofit2/docs/XmlItem.md b/samples/client/petstore/java/retrofit2/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/retrofit2/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2/src/main/java/org/openapitools/client/api/FakeApi.java
index 82bfec2f3a91837c7d942c3ef4235f1719f34e2c..79e12d56c0392ed4a46d5bd74e99df65712c7f34 100644
--- a/samples/client/petstore/java/retrofit2/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/retrofit2/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -17,6 +17,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -24,6 +25,20 @@ import java.util.List;
 import java.util.Map;
 
 public interface FakeApi {
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @return Call&lt;Void&gt;
+   */
+  @Headers({
+    "Content-Type:application/xml"
+  })
+  @POST("fake/create_xml_item")
+  Call<Void> createXmlItem(
+    @retrofit2.http.Body XmlItem xmlItem
+  );
+
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/retrofit2/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/retrofit2/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f54c9c0e9583b10f7edaba097024c35f0235619
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,841 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  public static final String SERIALIZED_NAME_ATTRIBUTE_STRING = "attribute_string";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_STRING)
+  private String attributeString;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_NUMBER = "attribute_number";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_NUMBER)
+  private BigDecimal attributeNumber;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_INTEGER = "attribute_integer";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_INTEGER)
+  private Integer attributeInteger;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_BOOLEAN = "attribute_boolean";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_BOOLEAN)
+  private Boolean attributeBoolean;
+
+  public static final String SERIALIZED_NAME_WRAPPED_ARRAY = "wrapped_array";
+  @SerializedName(SERIALIZED_NAME_WRAPPED_ARRAY)
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_STRING = "name_string";
+  @SerializedName(SERIALIZED_NAME_NAME_STRING)
+  private String nameString;
+
+  public static final String SERIALIZED_NAME_NAME_NUMBER = "name_number";
+  @SerializedName(SERIALIZED_NAME_NAME_NUMBER)
+  private BigDecimal nameNumber;
+
+  public static final String SERIALIZED_NAME_NAME_INTEGER = "name_integer";
+  @SerializedName(SERIALIZED_NAME_NAME_INTEGER)
+  private Integer nameInteger;
+
+  public static final String SERIALIZED_NAME_NAME_BOOLEAN = "name_boolean";
+  @SerializedName(SERIALIZED_NAME_NAME_BOOLEAN)
+  private Boolean nameBoolean;
+
+  public static final String SERIALIZED_NAME_NAME_ARRAY = "name_array";
+  @SerializedName(SERIALIZED_NAME_NAME_ARRAY)
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_WRAPPED_ARRAY = "name_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAME_WRAPPED_ARRAY)
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_STRING = "prefix_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_STRING)
+  private String prefixString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NUMBER = "prefix_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NUMBER)
+  private BigDecimal prefixNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_INTEGER = "prefix_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_INTEGER)
+  private Integer prefixInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_BOOLEAN = "prefix_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_BOOLEAN)
+  private Boolean prefixBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_ARRAY = "prefix_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_ARRAY)
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY = "prefix_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY)
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_STRING = "namespace_string";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_STRING)
+  private String namespaceString;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_NUMBER = "namespace_number";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_NUMBER)
+  private BigDecimal namespaceNumber;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_INTEGER = "namespace_integer";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_INTEGER)
+  private Integer namespaceInteger;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_BOOLEAN = "namespace_boolean";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_BOOLEAN)
+  private Boolean namespaceBoolean;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_ARRAY = "namespace_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_ARRAY)
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY = "namespace_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY)
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_STRING = "prefix_ns_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_STRING)
+  private String prefixNsString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_NUMBER = "prefix_ns_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_NUMBER)
+  private BigDecimal prefixNsNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_INTEGER = "prefix_ns_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_INTEGER)
+  private Integer prefixNsInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_BOOLEAN = "prefix_ns_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_BOOLEAN)
+  private Boolean prefixNsBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_ARRAY = "prefix_ns_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_ARRAY)
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY = "prefix_ns_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY)
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/retrofit2/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/retrofit2/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..5e861e18621032d0040d0d689c62261e02f762c2
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,278 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/retrofit2rx/docs/FakeApi.md b/samples/client/petstore/java/retrofit2rx/docs/FakeApi.md
index 9a034514e7c58a190a983021afb6a288c558a0f1..c2d612a9fda693840a9b52bc1f524a1d50d80ca5 100644
--- a/samples/client/petstore/java/retrofit2rx/docs/FakeApi.md
+++ b/samples/client/petstore/java/retrofit2rx/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/retrofit2rx/docs/XmlItem.md b/samples/client/petstore/java/retrofit2rx/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2rx/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/retrofit2rx/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2rx/src/main/java/org/openapitools/client/api/FakeApi.java
index cd43e3cde03605a269364288cec5363ff1a234fe..f557b64a0b5a70119a40e06f04a30c22a3b242a1 100644
--- a/samples/client/petstore/java/retrofit2rx/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/retrofit2rx/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -17,6 +17,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -24,6 +25,20 @@ import java.util.List;
 import java.util.Map;
 
 public interface FakeApi {
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @return Observable&lt;Void&gt;
+   */
+  @Headers({
+    "Content-Type:application/xml"
+  })
+  @POST("fake/create_xml_item")
+  Observable<Void> createXmlItem(
+    @retrofit2.http.Body XmlItem xmlItem
+  );
+
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/retrofit2rx/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/retrofit2rx/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f54c9c0e9583b10f7edaba097024c35f0235619
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2rx/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,841 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  public static final String SERIALIZED_NAME_ATTRIBUTE_STRING = "attribute_string";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_STRING)
+  private String attributeString;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_NUMBER = "attribute_number";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_NUMBER)
+  private BigDecimal attributeNumber;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_INTEGER = "attribute_integer";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_INTEGER)
+  private Integer attributeInteger;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_BOOLEAN = "attribute_boolean";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_BOOLEAN)
+  private Boolean attributeBoolean;
+
+  public static final String SERIALIZED_NAME_WRAPPED_ARRAY = "wrapped_array";
+  @SerializedName(SERIALIZED_NAME_WRAPPED_ARRAY)
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_STRING = "name_string";
+  @SerializedName(SERIALIZED_NAME_NAME_STRING)
+  private String nameString;
+
+  public static final String SERIALIZED_NAME_NAME_NUMBER = "name_number";
+  @SerializedName(SERIALIZED_NAME_NAME_NUMBER)
+  private BigDecimal nameNumber;
+
+  public static final String SERIALIZED_NAME_NAME_INTEGER = "name_integer";
+  @SerializedName(SERIALIZED_NAME_NAME_INTEGER)
+  private Integer nameInteger;
+
+  public static final String SERIALIZED_NAME_NAME_BOOLEAN = "name_boolean";
+  @SerializedName(SERIALIZED_NAME_NAME_BOOLEAN)
+  private Boolean nameBoolean;
+
+  public static final String SERIALIZED_NAME_NAME_ARRAY = "name_array";
+  @SerializedName(SERIALIZED_NAME_NAME_ARRAY)
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_WRAPPED_ARRAY = "name_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAME_WRAPPED_ARRAY)
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_STRING = "prefix_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_STRING)
+  private String prefixString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NUMBER = "prefix_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NUMBER)
+  private BigDecimal prefixNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_INTEGER = "prefix_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_INTEGER)
+  private Integer prefixInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_BOOLEAN = "prefix_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_BOOLEAN)
+  private Boolean prefixBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_ARRAY = "prefix_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_ARRAY)
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY = "prefix_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY)
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_STRING = "namespace_string";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_STRING)
+  private String namespaceString;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_NUMBER = "namespace_number";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_NUMBER)
+  private BigDecimal namespaceNumber;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_INTEGER = "namespace_integer";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_INTEGER)
+  private Integer namespaceInteger;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_BOOLEAN = "namespace_boolean";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_BOOLEAN)
+  private Boolean namespaceBoolean;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_ARRAY = "namespace_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_ARRAY)
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY = "namespace_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY)
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_STRING = "prefix_ns_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_STRING)
+  private String prefixNsString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_NUMBER = "prefix_ns_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_NUMBER)
+  private BigDecimal prefixNsNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_INTEGER = "prefix_ns_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_INTEGER)
+  private Integer prefixNsInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_BOOLEAN = "prefix_ns_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_BOOLEAN)
+  private Boolean prefixNsBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_ARRAY = "prefix_ns_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_ARRAY)
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY = "prefix_ns_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY)
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/retrofit2rx/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/retrofit2rx/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..5e861e18621032d0040d0d689c62261e02f762c2
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2rx/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,278 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/retrofit2rx2/docs/FakeApi.md b/samples/client/petstore/java/retrofit2rx2/docs/FakeApi.md
index 9a034514e7c58a190a983021afb6a288c558a0f1..c2d612a9fda693840a9b52bc1f524a1d50d80ca5 100644
--- a/samples/client/petstore/java/retrofit2rx2/docs/FakeApi.md
+++ b/samples/client/petstore/java/retrofit2rx2/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/retrofit2rx2/docs/XmlItem.md b/samples/client/petstore/java/retrofit2rx2/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2rx2/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/api/FakeApi.java
index d4f662673b8235430fdbe64750a89ee74069de58..4ca310afcf8a1b6dea5382363884f8c44c8fccfb 100644
--- a/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -18,6 +18,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -25,6 +26,20 @@ import java.util.List;
 import java.util.Map;
 
 public interface FakeApi {
+  /**
+   * creates an XmlItem
+   * this route creates an XmlItem
+   * @param xmlItem XmlItem Body (required)
+   * @return Completable
+   */
+  @Headers({
+    "Content-Type:application/xml"
+  })
+  @POST("fake/create_xml_item")
+  Completable createXmlItem(
+    @retrofit2.http.Body XmlItem xmlItem
+  );
+
   /**
    * 
    * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f54c9c0e9583b10f7edaba097024c35f0235619
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,841 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  public static final String SERIALIZED_NAME_ATTRIBUTE_STRING = "attribute_string";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_STRING)
+  private String attributeString;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_NUMBER = "attribute_number";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_NUMBER)
+  private BigDecimal attributeNumber;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_INTEGER = "attribute_integer";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_INTEGER)
+  private Integer attributeInteger;
+
+  public static final String SERIALIZED_NAME_ATTRIBUTE_BOOLEAN = "attribute_boolean";
+  @SerializedName(SERIALIZED_NAME_ATTRIBUTE_BOOLEAN)
+  private Boolean attributeBoolean;
+
+  public static final String SERIALIZED_NAME_WRAPPED_ARRAY = "wrapped_array";
+  @SerializedName(SERIALIZED_NAME_WRAPPED_ARRAY)
+  private List<Integer> wrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_STRING = "name_string";
+  @SerializedName(SERIALIZED_NAME_NAME_STRING)
+  private String nameString;
+
+  public static final String SERIALIZED_NAME_NAME_NUMBER = "name_number";
+  @SerializedName(SERIALIZED_NAME_NAME_NUMBER)
+  private BigDecimal nameNumber;
+
+  public static final String SERIALIZED_NAME_NAME_INTEGER = "name_integer";
+  @SerializedName(SERIALIZED_NAME_NAME_INTEGER)
+  private Integer nameInteger;
+
+  public static final String SERIALIZED_NAME_NAME_BOOLEAN = "name_boolean";
+  @SerializedName(SERIALIZED_NAME_NAME_BOOLEAN)
+  private Boolean nameBoolean;
+
+  public static final String SERIALIZED_NAME_NAME_ARRAY = "name_array";
+  @SerializedName(SERIALIZED_NAME_NAME_ARRAY)
+  private List<Integer> nameArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAME_WRAPPED_ARRAY = "name_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAME_WRAPPED_ARRAY)
+  private List<Integer> nameWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_STRING = "prefix_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_STRING)
+  private String prefixString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NUMBER = "prefix_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NUMBER)
+  private BigDecimal prefixNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_INTEGER = "prefix_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_INTEGER)
+  private Integer prefixInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_BOOLEAN = "prefix_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_BOOLEAN)
+  private Boolean prefixBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_ARRAY = "prefix_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_ARRAY)
+  private List<Integer> prefixArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY = "prefix_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_WRAPPED_ARRAY)
+  private List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_STRING = "namespace_string";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_STRING)
+  private String namespaceString;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_NUMBER = "namespace_number";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_NUMBER)
+  private BigDecimal namespaceNumber;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_INTEGER = "namespace_integer";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_INTEGER)
+  private Integer namespaceInteger;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_BOOLEAN = "namespace_boolean";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_BOOLEAN)
+  private Boolean namespaceBoolean;
+
+  public static final String SERIALIZED_NAME_NAMESPACE_ARRAY = "namespace_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_ARRAY)
+  private List<Integer> namespaceArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY = "namespace_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_NAMESPACE_WRAPPED_ARRAY)
+  private List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_STRING = "prefix_ns_string";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_STRING)
+  private String prefixNsString;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_NUMBER = "prefix_ns_number";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_NUMBER)
+  private BigDecimal prefixNsNumber;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_INTEGER = "prefix_ns_integer";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_INTEGER)
+  private Integer prefixNsInteger;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_BOOLEAN = "prefix_ns_boolean";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_BOOLEAN)
+  private Boolean prefixNsBoolean;
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_ARRAY = "prefix_ns_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_ARRAY)
+  private List<Integer> prefixNsArray = new ArrayList<Integer>();
+
+  public static final String SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY = "prefix_ns_wrapped_array";
+  @SerializedName(SERIALIZED_NAME_PREFIX_NS_WRAPPED_ARRAY)
+  private List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/retrofit2rx2/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/retrofit2rx2/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..5e861e18621032d0040d0d689c62261e02f762c2
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2rx2/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,278 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/vertx/docs/FakeApi.md b/samples/client/petstore/java/vertx/docs/FakeApi.md
index 664a98ddc4b15e970c5e3fe344eb251fd6ecee92..32fef68fa41b44b2158fd6c55f97501212428d29 100644
--- a/samples/client/petstore/java/vertx/docs/FakeApi.md
+++ b/samples/client/petstore/java/vertx/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/vertx/docs/XmlItem.md b/samples/client/petstore/java/vertx/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/vertx/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApi.java
index 816a0085cd977ddc8cd6c8ea832ef421a34e970d..5544e1d0f309311267c68546113246b06b4085ee 100644
--- a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -8,6 +8,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 import io.vertx.core.AsyncResult;
 import io.vertx.core.Handler;
 import io.vertx.core.json.JsonObject;
@@ -16,6 +17,8 @@ import java.util.*;
 
 public interface FakeApi {
 
+    void createXmlItem(XmlItem xmlItem, Handler<AsyncResult<Void>> handler);
+
     void fakeOuterBooleanSerialize(Boolean body, Handler<AsyncResult<Boolean>> handler);
 
     void fakeOuterCompositeSerialize(OuterComposite body, Handler<AsyncResult<OuterComposite>> handler);
diff --git a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApiImpl.java b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApiImpl.java
index fd3dd6e29735e5d6e37621c7450ef1844ba2f8d9..fe1cddd1b226a110d3e21d88350f004ba00d3ab6 100644
--- a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApiImpl.java
+++ b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/FakeApiImpl.java
@@ -8,6 +8,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import io.vertx.core.AsyncResult;
 import io.vertx.core.Handler;
@@ -44,6 +45,40 @@ public class FakeApiImpl implements FakeApi {
         this.apiClient = apiClient;
     }
 
+    /**
+     * creates an XmlItem
+     * this route creates an XmlItem
+     * @param xmlItem XmlItem Body (required)
+     * @param resultHandler Asynchronous result handler
+     */
+    public void createXmlItem(XmlItem xmlItem, Handler<AsyncResult<Void>> resultHandler) {
+        Object localVarBody = xmlItem;
+        
+        // verify the required parameter 'xmlItem' is set
+        if (xmlItem == null) {
+            resultHandler.handle(ApiException.fail(400, "Missing the required parameter 'xmlItem' when calling createXmlItem"));
+            return;
+        }
+        
+        // create path and map variables
+        String localVarPath = "/fake/create_xml_item";
+
+        // query params
+        List<Pair> localVarQueryParams = new ArrayList<>();
+
+        // header params
+        MultiMap localVarHeaderParams = MultiMap.caseInsensitiveMultiMap();
+        
+        // form params
+        // TODO: sending files within multipart/form-data is not supported yet (because of vertx web-client)
+        Map<String, Object> localVarFormParams = new HashMap<>();
+        
+        String[] localVarAccepts = {  };
+        String[] localVarContentTypes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" };
+        String[] localVarAuthNames = new String[] {  };
+
+        apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarBody, localVarHeaderParams, localVarFormParams, localVarAccepts, localVarContentTypes, localVarAuthNames, null, resultHandler);
+    }
     /**
      * 
      * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/rxjava/FakeApi.java b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/rxjava/FakeApi.java
index 6da7d94fee8d4d73273dc4ee81d0e9b057054ce0..8916ba973348c0aae4e2bbcf9a9ce58f3bbd498c 100644
--- a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/rxjava/FakeApi.java
+++ b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/api/rxjava/FakeApi.java
@@ -8,6 +8,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.*;
 
@@ -28,6 +29,27 @@ public class FakeApi {
 	    return delegate;
 	}
 
+    /**
+     * creates an XmlItem
+     * this route creates an XmlItem
+     * @param xmlItem XmlItem Body (required)
+     * @param resultHandler Asynchronous result handler
+     */
+    public void createXmlItem(XmlItem xmlItem, Handler<AsyncResult<Void>> resultHandler) {
+        delegate.createXmlItem(xmlItem, resultHandler);
+    }
+
+    /**
+     * creates an XmlItem
+     * this route creates an XmlItem
+     * @param xmlItem XmlItem Body (required)
+     * @return Asynchronous result handler (RxJava Single)
+     */
+    public Single<Void> rxCreateXmlItem(XmlItem xmlItem) {
+        return Single.create(new io.vertx.rx.java.SingleOnSubscribeAdapter<>(fut -> {
+            delegate.createXmlItem(xmlItem, fut);
+        }));
+    }
     /**
      * 
      * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..53282f0b83d2fcac1f01acf44b6460c8759300e0
--- /dev/null
+++ b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,809 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/vertx/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/vertx/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/vertx/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/webclient/docs/FakeApi.md b/samples/client/petstore/java/webclient/docs/FakeApi.md
index 8e3385cc83d1b16182f98e5d2f0cd260c8b7cfd2..5b7781b11720beaab7761c0eaa3e63326d606588 100644
--- a/samples/client/petstore/java/webclient/docs/FakeApi.md
+++ b/samples/client/petstore/java/webclient/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+<a name="createXmlItem"></a>
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiException;
+//import org.openapitools.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+XmlItem xmlItem = new XmlItem(); // XmlItem | XmlItem Body
+try {
+    apiInstance.createXmlItem(xmlItem);
+} catch (ApiException e) {
+    System.err.println("Exception when calling FakeApi#createXmlItem");
+    e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
 <a name="fakeOuterBooleanSerialize"></a>
 # **fakeOuterBooleanSerialize**
 > Boolean fakeOuterBooleanSerialize(body)
diff --git a/samples/client/petstore/java/webclient/docs/XmlItem.md b/samples/client/petstore/java/webclient/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9d2690acd8213e8e7da3dbb267e5fcb652c46bf8
--- /dev/null
+++ b/samples/client/petstore/java/webclient/docs/XmlItem.md
@@ -0,0 +1,38 @@
+
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** |  |  [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**attributeInteger** | **Integer** |  |  [optional]
+**attributeBoolean** | **Boolean** |  |  [optional]
+**wrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+
+
+
diff --git a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java
index 2a85bb0ae3c95d6c4fd682bed0d417064a9361db..805dc32e6c4699d356f3f47d8bfb6009c17304c2 100644
--- a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java
+++ b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -10,6 +10,7 @@ import java.time.LocalDate;
 import java.time.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 
 import java.util.HashMap;
 import java.util.List;
@@ -52,6 +53,39 @@ public class FakeApi {
         this.apiClient = apiClient;
     }
 
+    /**
+     * creates an XmlItem
+     * this route creates an XmlItem
+     * <p><b>200</b> - successful operation
+     * @param xmlItem XmlItem Body
+     * @throws RestClientException if an error occurs while attempting to invoke the API
+     */
+    public Mono<Void> createXmlItem(XmlItem xmlItem) throws RestClientException {
+        Object postBody = xmlItem;
+        
+        // verify the required parameter 'xmlItem' is set
+        if (xmlItem == null) {
+            throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter 'xmlItem' when calling createXmlItem");
+        }
+        
+        String path = UriComponentsBuilder.fromPath("/fake/create_xml_item").build().toUriString();
+        
+        final MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<String, String>();
+        final HttpHeaders headerParams = new HttpHeaders();
+        final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
+
+        final String[] accepts = { };
+        final List<MediaType> accept = apiClient.selectHeaderAccept(accepts);
+        final String[] contentTypes = { 
+            "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"
+        };
+        final MediaType contentType = apiClient.selectHeaderContentType(contentTypes);
+
+        String[] authNames = new String[] {  };
+
+        ParameterizedTypeReference<Void> returnType = new ParameterizedTypeReference<Void>() {};
+        return apiClient.invokeAPI(path, HttpMethod.POST, queryParams, postBody, headerParams, formParams, accept, contentType, authNames, returnType);
+    }
     /**
      * 
      * Test serialization of outer boolean types
diff --git a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..53282f0b83d2fcac1f01acf44b6460c8759300e0
--- /dev/null
+++ b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,809 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = new ArrayList<>();
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = new ArrayList<>();
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = new ArrayList<>();
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = new ArrayList<>();
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = new ArrayList<>();
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = new ArrayList<>();
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = new ArrayList<>();
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @ApiModelProperty(example = "string", value = "")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @ApiModelProperty(example = "1.234", value = "")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @ApiModelProperty(example = "-2", value = "")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @ApiModelProperty(example = "true", value = "")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @ApiModelProperty(value = "")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/webclient/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/webclient/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..55e75391e00e91ac278723aac97fb057070d9fe5
--- /dev/null
+++ b/samples/client/petstore/java/webclient/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,275 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceString'
+     */
+    @Test
+    public void prefixNamespaceStringTest() {
+        // TODO: test prefixNamespaceString
+    }
+
+    /**
+     * Test the property 'prefixNamespaceNumber'
+     */
+    @Test
+    public void prefixNamespaceNumberTest() {
+        // TODO: test prefixNamespaceNumber
+    }
+
+    /**
+     * Test the property 'prefixNamespaceInteger'
+     */
+    @Test
+    public void prefixNamespaceIntegerTest() {
+        // TODO: test prefixNamespaceInteger
+    }
+
+    /**
+     * Test the property 'prefixNamespaceBoolean'
+     */
+    @Test
+    public void prefixNamespaceBooleanTest() {
+        // TODO: test prefixNamespaceBoolean
+    }
+
+    /**
+     * Test the property 'prefixNamespaceArray'
+     */
+    @Test
+    public void prefixNamespaceArrayTest() {
+        // TODO: test prefixNamespaceArray
+    }
+
+    /**
+     * Test the property 'prefixNamespaceWrappedArray'
+     */
+    @Test
+    public void prefixNamespaceWrappedArrayTest() {
+        // TODO: test prefixNamespaceWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/php/OpenAPIClient-php/README.md b/samples/client/petstore/php/OpenAPIClient-php/README.md
index 4b1b7004d25cf2099e411c25662ae11c5904e7a1..10e87b292a8a1c226bff6847156cf145a7565e0f 100644
--- a/samples/client/petstore/php/OpenAPIClient-php/README.md
+++ b/samples/client/petstore/php/OpenAPIClient-php/README.md
@@ -80,6 +80,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 Class | Method | HTTP request | Description
 ------------ | ------------- | ------------- | -------------
 *AnotherFakeApi* | [**call123TestSpecialTags**](docs/Api/AnotherFakeApi.md#call123testspecialtags) | **PATCH** /another-fake/dummy | To test special tags
+*FakeApi* | [**createXmlItem**](docs/Api/FakeApi.md#createxmlitem) | **POST** /fake/create_xml_item | creates an XmlItem
 *FakeApi* | [**fakeOuterBooleanSerialize**](docs/Api/FakeApi.md#fakeouterbooleanserialize) | **POST** /fake/outer/boolean | 
 *FakeApi* | [**fakeOuterCompositeSerialize**](docs/Api/FakeApi.md#fakeoutercompositeserialize) | **POST** /fake/outer/composite | 
 *FakeApi* | [**fakeOuterNumberSerialize**](docs/Api/FakeApi.md#fakeouternumberserialize) | **POST** /fake/outer/number | 
@@ -154,6 +155,7 @@ Class | Method | HTTP request | Description
  - [TypeHolderDefault](docs/Model/TypeHolderDefault.md)
  - [TypeHolderExample](docs/Model/TypeHolderExample.md)
  - [User](docs/Model/User.md)
+ - [XmlItem](docs/Model/XmlItem.md)
 
 
 ## Documentation For Authorization
diff --git a/samples/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md b/samples/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md
index 666173d0a4e08fc6df57740b93af4b20a5f44757..0ae31047e5aeda0370ad5a220b054a5fde2627c4 100644
--- a/samples/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md
+++ b/samples/client/petstore/php/OpenAPIClient-php/docs/Api/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,54 @@ Method | HTTP request | Description
 [**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+# **createXmlItem**
+> createXmlItem($xml_item)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```php
+<?php
+require_once(__DIR__ . '/vendor/autoload.php');
+
+$apiInstance = new OpenAPI\Client\Api\FakeApi(
+    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
+    // This is optional, `GuzzleHttp\Client` will be used as default.
+    new GuzzleHttp\Client()
+);
+$xml_item = new \OpenAPI\Client\Model\XmlItem(); // \OpenAPI\Client\Model\XmlItem | XmlItem Body
+
+try {
+    $apiInstance->createXmlItem($xml_item);
+} catch (Exception $e) {
+    echo 'Exception when calling FakeApi->createXmlItem: ', $e->getMessage(), PHP_EOL;
+}
+?>
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xml_item** | [**\OpenAPI\Client\Model\XmlItem**](../Model/XmlItem.md)| XmlItem Body |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../README.md#documentation-for-models) [[Back to README]](../../README.md)
+
 # **fakeOuterBooleanSerialize**
 > bool fakeOuterBooleanSerialize($body)
 
diff --git a/samples/client/petstore/php/OpenAPIClient-php/docs/Model/XmlItem.md b/samples/client/petstore/php/OpenAPIClient-php/docs/Model/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..9fc2e89deac1a67a7eac329b305eb6582e8e431c
--- /dev/null
+++ b/samples/client/petstore/php/OpenAPIClient-php/docs/Model/XmlItem.md
@@ -0,0 +1,38 @@
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute_string** | **string** |  | [optional] 
+**attribute_number** | **float** |  | [optional] 
+**attribute_integer** | **int** |  | [optional] 
+**attribute_boolean** | **bool** |  | [optional] 
+**wrapped_array** | **int[]** |  | [optional] 
+**name_string** | **string** |  | [optional] 
+**name_number** | **float** |  | [optional] 
+**name_integer** | **int** |  | [optional] 
+**name_boolean** | **bool** |  | [optional] 
+**name_array** | **int[]** |  | [optional] 
+**name_wrapped_array** | **int[]** |  | [optional] 
+**prefix_string** | **string** |  | [optional] 
+**prefix_number** | **float** |  | [optional] 
+**prefix_integer** | **int** |  | [optional] 
+**prefix_boolean** | **bool** |  | [optional] 
+**prefix_array** | **int[]** |  | [optional] 
+**prefix_wrapped_array** | **int[]** |  | [optional] 
+**namespace_string** | **string** |  | [optional] 
+**namespace_number** | **float** |  | [optional] 
+**namespace_integer** | **int** |  | [optional] 
+**namespace_boolean** | **bool** |  | [optional] 
+**namespace_array** | **int[]** |  | [optional] 
+**namespace_wrapped_array** | **int[]** |  | [optional] 
+**prefix_ns_string** | **string** |  | [optional] 
+**prefix_ns_number** | **float** |  | [optional] 
+**prefix_ns_integer** | **int** |  | [optional] 
+**prefix_ns_boolean** | **bool** |  | [optional] 
+**prefix_ns_array** | **int[]** |  | [optional] 
+**prefix_ns_wrapped_array** | **int[]** |  | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php
index eda883abd12622c27e7391e3b76e8e11520bb83a..c618ab9350bd4b5e65ea4a875a846161d51a6938 100644
--- a/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php
+++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Api/FakeApi.php
@@ -87,6 +87,225 @@ class FakeApi
         return $this->config;
     }
 
+    /**
+     * Operation createXmlItem
+     *
+     * creates an XmlItem
+     *
+     * @param  \OpenAPI\Client\Model\XmlItem $xml_item XmlItem Body (required)
+     *
+     * @throws \OpenAPI\Client\ApiException on non-2xx response
+     * @throws \InvalidArgumentException
+     * @return void
+     */
+    public function createXmlItem($xml_item)
+    {
+        $this->createXmlItemWithHttpInfo($xml_item);
+    }
+
+    /**
+     * Operation createXmlItemWithHttpInfo
+     *
+     * creates an XmlItem
+     *
+     * @param  \OpenAPI\Client\Model\XmlItem $xml_item XmlItem Body (required)
+     *
+     * @throws \OpenAPI\Client\ApiException on non-2xx response
+     * @throws \InvalidArgumentException
+     * @return array of null, HTTP status code, HTTP response headers (array of strings)
+     */
+    public function createXmlItemWithHttpInfo($xml_item)
+    {
+        $request = $this->createXmlItemRequest($xml_item);
+
+        try {
+            $options = $this->createHttpClientOption();
+            try {
+                $response = $this->client->send($request, $options);
+            } catch (RequestException $e) {
+                throw new ApiException(
+                    "[{$e->getCode()}] {$e->getMessage()}",
+                    $e->getCode(),
+                    $e->getResponse() ? $e->getResponse()->getHeaders() : null,
+                    $e->getResponse() ? $e->getResponse()->getBody()->getContents() : null
+                );
+            }
+
+            $statusCode = $response->getStatusCode();
+
+            if ($statusCode < 200 || $statusCode > 299) {
+                throw new ApiException(
+                    sprintf(
+                        '[%d] Error connecting to the API (%s)',
+                        $statusCode,
+                        $request->getUri()
+                    ),
+                    $statusCode,
+                    $response->getHeaders(),
+                    $response->getBody()
+                );
+            }
+
+            return [null, $statusCode, $response->getHeaders()];
+
+        } catch (ApiException $e) {
+            switch ($e->getCode()) {
+            }
+            throw $e;
+        }
+    }
+
+    /**
+     * Operation createXmlItemAsync
+     *
+     * creates an XmlItem
+     *
+     * @param  \OpenAPI\Client\Model\XmlItem $xml_item XmlItem Body (required)
+     *
+     * @throws \InvalidArgumentException
+     * @return \GuzzleHttp\Promise\PromiseInterface
+     */
+    public function createXmlItemAsync($xml_item)
+    {
+        return $this->createXmlItemAsyncWithHttpInfo($xml_item)
+            ->then(
+                function ($response) {
+                    return $response[0];
+                }
+            );
+    }
+
+    /**
+     * Operation createXmlItemAsyncWithHttpInfo
+     *
+     * creates an XmlItem
+     *
+     * @param  \OpenAPI\Client\Model\XmlItem $xml_item XmlItem Body (required)
+     *
+     * @throws \InvalidArgumentException
+     * @return \GuzzleHttp\Promise\PromiseInterface
+     */
+    public function createXmlItemAsyncWithHttpInfo($xml_item)
+    {
+        $returnType = '';
+        $request = $this->createXmlItemRequest($xml_item);
+
+        return $this->client
+            ->sendAsync($request, $this->createHttpClientOption())
+            ->then(
+                function ($response) use ($returnType) {
+                    return [null, $response->getStatusCode(), $response->getHeaders()];
+                },
+                function ($exception) {
+                    $response = $exception->getResponse();
+                    $statusCode = $response->getStatusCode();
+                    throw new ApiException(
+                        sprintf(
+                            '[%d] Error connecting to the API (%s)',
+                            $statusCode,
+                            $exception->getRequest()->getUri()
+                        ),
+                        $statusCode,
+                        $response->getHeaders(),
+                        $response->getBody()
+                    );
+                }
+            );
+    }
+
+    /**
+     * Create request for operation 'createXmlItem'
+     *
+     * @param  \OpenAPI\Client\Model\XmlItem $xml_item XmlItem Body (required)
+     *
+     * @throws \InvalidArgumentException
+     * @return \GuzzleHttp\Psr7\Request
+     */
+    protected function createXmlItemRequest($xml_item)
+    {
+        // verify the required parameter 'xml_item' is set
+        if ($xml_item === null || (is_array($xml_item) && count($xml_item) === 0)) {
+            throw new \InvalidArgumentException(
+                'Missing the required parameter $xml_item when calling createXmlItem'
+            );
+        }
+
+        $resourcePath = '/fake/create_xml_item';
+        $formParams = [];
+        $queryParams = [];
+        $headerParams = [];
+        $httpBody = '';
+        $multipart = false;
+
+
+
+        // body params
+        $_tempBody = null;
+        if (isset($xml_item)) {
+            $_tempBody = $xml_item;
+        }
+
+        if ($multipart) {
+            $headers = $this->headerSelector->selectHeadersForMultipart(
+                []
+            );
+        } else {
+            $headers = $this->headerSelector->selectHeaders(
+                [],
+                ['application/xml', 'application/xml; charset=utf-8', 'application/xml; charset=utf-16', 'text/xml', 'text/xml; charset=utf-8', 'text/xml; charset=utf-16']
+            );
+        }
+
+        // for model (json/xml)
+        if (isset($_tempBody)) {
+            // $_tempBody is the method argument, if present
+            if ($headers['Content-Type'] === 'application/json') {
+                $httpBody = \GuzzleHttp\json_encode(ObjectSerializer::sanitizeForSerialization($_tempBody));
+            } else {
+                $httpBody = $_tempBody;
+            }
+        } elseif (count($formParams) > 0) {
+            if ($multipart) {
+                $multipartContents = [];
+                foreach ($formParams as $formParamName => $formParamValue) {
+                    $multipartContents[] = [
+                        'name' => $formParamName,
+                        'contents' => $formParamValue
+                    ];
+                }
+                // for HTTP post (form)
+                $httpBody = new MultipartStream($multipartContents);
+
+            } elseif ($headers['Content-Type'] === 'application/json') {
+                $httpBody = \GuzzleHttp\json_encode($formParams);
+
+            } else {
+                // for HTTP post (form)
+                $httpBody = \GuzzleHttp\Psr7\build_query($formParams);
+            }
+        }
+
+
+        $defaultHeaders = [];
+        if ($this->config->getUserAgent()) {
+            $defaultHeaders['User-Agent'] = $this->config->getUserAgent();
+        }
+
+        $headers = array_merge(
+            $defaultHeaders,
+            $headerParams,
+            $headers
+        );
+
+        $query = \GuzzleHttp\Psr7\build_query($queryParams);
+        return new Request(
+            'POST',
+            $this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''),
+            $headers,
+            $httpBody
+        );
+    }
+
     /**
      * Operation fakeOuterBooleanSerialize
      *
diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/Model/XmlItem.php b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/XmlItem.php
new file mode 100644
index 0000000000000000000000000000000000000000..ff284f106298b0be0de8cd7702ec6dbc20816a24
--- /dev/null
+++ b/samples/client/petstore/php/OpenAPIClient-php/lib/Model/XmlItem.php
@@ -0,0 +1,1137 @@
+<?php
+/**
+ * XmlItem
+ *
+ * PHP version 5
+ *
+ * @category Class
+ * @package  OpenAPI\Client
+ * @author   OpenAPI Generator team
+ * @link     https://openapi-generator.tech
+ */
+
+/**
+ * OpenAPI Petstore
+ *
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ * Generated by: https://openapi-generator.tech
+ * OpenAPI Generator version: 4.0.0-SNAPSHOT
+ */
+
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+namespace OpenAPI\Client\Model;
+
+use \ArrayAccess;
+use \OpenAPI\Client\ObjectSerializer;
+
+/**
+ * XmlItem Class Doc Comment
+ *
+ * @category Class
+ * @package  OpenAPI\Client
+ * @author   OpenAPI Generator team
+ * @link     https://openapi-generator.tech
+ */
+class XmlItem implements ModelInterface, ArrayAccess
+{
+    const DISCRIMINATOR = null;
+
+    /**
+      * The original name of the model.
+      *
+      * @var string
+      */
+    protected static $openAPIModelName = 'XmlItem';
+
+    /**
+      * Array of property to type mappings. Used for (de)serialization
+      *
+      * @var string[]
+      */
+    protected static $openAPITypes = [
+        'attribute_string' => 'string',
+        'attribute_number' => 'float',
+        'attribute_integer' => 'int',
+        'attribute_boolean' => 'bool',
+        'wrapped_array' => 'int[]',
+        'name_string' => 'string',
+        'name_number' => 'float',
+        'name_integer' => 'int',
+        'name_boolean' => 'bool',
+        'name_array' => 'int[]',
+        'name_wrapped_array' => 'int[]',
+        'prefix_string' => 'string',
+        'prefix_number' => 'float',
+        'prefix_integer' => 'int',
+        'prefix_boolean' => 'bool',
+        'prefix_array' => 'int[]',
+        'prefix_wrapped_array' => 'int[]',
+        'namespace_string' => 'string',
+        'namespace_number' => 'float',
+        'namespace_integer' => 'int',
+        'namespace_boolean' => 'bool',
+        'namespace_array' => 'int[]',
+        'namespace_wrapped_array' => 'int[]',
+        'prefix_ns_string' => 'string',
+        'prefix_ns_number' => 'float',
+        'prefix_ns_integer' => 'int',
+        'prefix_ns_boolean' => 'bool',
+        'prefix_ns_array' => 'int[]',
+        'prefix_ns_wrapped_array' => 'int[]'
+    ];
+
+    /**
+      * Array of property to format mappings. Used for (de)serialization
+      *
+      * @var string[]
+      */
+    protected static $openAPIFormats = [
+        'attribute_string' => null,
+        'attribute_number' => null,
+        'attribute_integer' => null,
+        'attribute_boolean' => null,
+        'wrapped_array' => null,
+        'name_string' => null,
+        'name_number' => null,
+        'name_integer' => null,
+        'name_boolean' => null,
+        'name_array' => null,
+        'name_wrapped_array' => null,
+        'prefix_string' => null,
+        'prefix_number' => null,
+        'prefix_integer' => null,
+        'prefix_boolean' => null,
+        'prefix_array' => null,
+        'prefix_wrapped_array' => null,
+        'namespace_string' => null,
+        'namespace_number' => null,
+        'namespace_integer' => null,
+        'namespace_boolean' => null,
+        'namespace_array' => null,
+        'namespace_wrapped_array' => null,
+        'prefix_ns_string' => null,
+        'prefix_ns_number' => null,
+        'prefix_ns_integer' => null,
+        'prefix_ns_boolean' => null,
+        'prefix_ns_array' => null,
+        'prefix_ns_wrapped_array' => null
+    ];
+
+    /**
+     * Array of property to type mappings. Used for (de)serialization
+     *
+     * @return array
+     */
+    public static function openAPITypes()
+    {
+        return self::$openAPITypes;
+    }
+
+    /**
+     * Array of property to format mappings. Used for (de)serialization
+     *
+     * @return array
+     */
+    public static function openAPIFormats()
+    {
+        return self::$openAPIFormats;
+    }
+
+    /**
+     * Array of attributes where the key is the local name,
+     * and the value is the original name
+     *
+     * @var string[]
+     */
+    protected static $attributeMap = [
+        'attribute_string' => 'attribute_string',
+        'attribute_number' => 'attribute_number',
+        'attribute_integer' => 'attribute_integer',
+        'attribute_boolean' => 'attribute_boolean',
+        'wrapped_array' => 'wrapped_array',
+        'name_string' => 'name_string',
+        'name_number' => 'name_number',
+        'name_integer' => 'name_integer',
+        'name_boolean' => 'name_boolean',
+        'name_array' => 'name_array',
+        'name_wrapped_array' => 'name_wrapped_array',
+        'prefix_string' => 'prefix_string',
+        'prefix_number' => 'prefix_number',
+        'prefix_integer' => 'prefix_integer',
+        'prefix_boolean' => 'prefix_boolean',
+        'prefix_array' => 'prefix_array',
+        'prefix_wrapped_array' => 'prefix_wrapped_array',
+        'namespace_string' => 'namespace_string',
+        'namespace_number' => 'namespace_number',
+        'namespace_integer' => 'namespace_integer',
+        'namespace_boolean' => 'namespace_boolean',
+        'namespace_array' => 'namespace_array',
+        'namespace_wrapped_array' => 'namespace_wrapped_array',
+        'prefix_ns_string' => 'prefix_ns_string',
+        'prefix_ns_number' => 'prefix_ns_number',
+        'prefix_ns_integer' => 'prefix_ns_integer',
+        'prefix_ns_boolean' => 'prefix_ns_boolean',
+        'prefix_ns_array' => 'prefix_ns_array',
+        'prefix_ns_wrapped_array' => 'prefix_ns_wrapped_array'
+    ];
+
+    /**
+     * Array of attributes to setter functions (for deserialization of responses)
+     *
+     * @var string[]
+     */
+    protected static $setters = [
+        'attribute_string' => 'setAttributeString',
+        'attribute_number' => 'setAttributeNumber',
+        'attribute_integer' => 'setAttributeInteger',
+        'attribute_boolean' => 'setAttributeBoolean',
+        'wrapped_array' => 'setWrappedArray',
+        'name_string' => 'setNameString',
+        'name_number' => 'setNameNumber',
+        'name_integer' => 'setNameInteger',
+        'name_boolean' => 'setNameBoolean',
+        'name_array' => 'setNameArray',
+        'name_wrapped_array' => 'setNameWrappedArray',
+        'prefix_string' => 'setPrefixString',
+        'prefix_number' => 'setPrefixNumber',
+        'prefix_integer' => 'setPrefixInteger',
+        'prefix_boolean' => 'setPrefixBoolean',
+        'prefix_array' => 'setPrefixArray',
+        'prefix_wrapped_array' => 'setPrefixWrappedArray',
+        'namespace_string' => 'setNamespaceString',
+        'namespace_number' => 'setNamespaceNumber',
+        'namespace_integer' => 'setNamespaceInteger',
+        'namespace_boolean' => 'setNamespaceBoolean',
+        'namespace_array' => 'setNamespaceArray',
+        'namespace_wrapped_array' => 'setNamespaceWrappedArray',
+        'prefix_ns_string' => 'setPrefixNsString',
+        'prefix_ns_number' => 'setPrefixNsNumber',
+        'prefix_ns_integer' => 'setPrefixNsInteger',
+        'prefix_ns_boolean' => 'setPrefixNsBoolean',
+        'prefix_ns_array' => 'setPrefixNsArray',
+        'prefix_ns_wrapped_array' => 'setPrefixNsWrappedArray'
+    ];
+
+    /**
+     * Array of attributes to getter functions (for serialization of requests)
+     *
+     * @var string[]
+     */
+    protected static $getters = [
+        'attribute_string' => 'getAttributeString',
+        'attribute_number' => 'getAttributeNumber',
+        'attribute_integer' => 'getAttributeInteger',
+        'attribute_boolean' => 'getAttributeBoolean',
+        'wrapped_array' => 'getWrappedArray',
+        'name_string' => 'getNameString',
+        'name_number' => 'getNameNumber',
+        'name_integer' => 'getNameInteger',
+        'name_boolean' => 'getNameBoolean',
+        'name_array' => 'getNameArray',
+        'name_wrapped_array' => 'getNameWrappedArray',
+        'prefix_string' => 'getPrefixString',
+        'prefix_number' => 'getPrefixNumber',
+        'prefix_integer' => 'getPrefixInteger',
+        'prefix_boolean' => 'getPrefixBoolean',
+        'prefix_array' => 'getPrefixArray',
+        'prefix_wrapped_array' => 'getPrefixWrappedArray',
+        'namespace_string' => 'getNamespaceString',
+        'namespace_number' => 'getNamespaceNumber',
+        'namespace_integer' => 'getNamespaceInteger',
+        'namespace_boolean' => 'getNamespaceBoolean',
+        'namespace_array' => 'getNamespaceArray',
+        'namespace_wrapped_array' => 'getNamespaceWrappedArray',
+        'prefix_ns_string' => 'getPrefixNsString',
+        'prefix_ns_number' => 'getPrefixNsNumber',
+        'prefix_ns_integer' => 'getPrefixNsInteger',
+        'prefix_ns_boolean' => 'getPrefixNsBoolean',
+        'prefix_ns_array' => 'getPrefixNsArray',
+        'prefix_ns_wrapped_array' => 'getPrefixNsWrappedArray'
+    ];
+
+    /**
+     * Array of attributes where the key is the local name,
+     * and the value is the original name
+     *
+     * @return array
+     */
+    public static function attributeMap()
+    {
+        return self::$attributeMap;
+    }
+
+    /**
+     * Array of attributes to setter functions (for deserialization of responses)
+     *
+     * @return array
+     */
+    public static function setters()
+    {
+        return self::$setters;
+    }
+
+    /**
+     * Array of attributes to getter functions (for serialization of requests)
+     *
+     * @return array
+     */
+    public static function getters()
+    {
+        return self::$getters;
+    }
+
+    /**
+     * The original name of the model.
+     *
+     * @return string
+     */
+    public function getModelName()
+    {
+        return self::$openAPIModelName;
+    }
+
+    
+
+    
+
+    /**
+     * Associative array for storing property values
+     *
+     * @var mixed[]
+     */
+    protected $container = [];
+
+    /**
+     * Constructor
+     *
+     * @param mixed[] $data Associated array of property values
+     *                      initializing the model
+     */
+    public function __construct(array $data = null)
+    {
+        $this->container['attribute_string'] = isset($data['attribute_string']) ? $data['attribute_string'] : null;
+        $this->container['attribute_number'] = isset($data['attribute_number']) ? $data['attribute_number'] : null;
+        $this->container['attribute_integer'] = isset($data['attribute_integer']) ? $data['attribute_integer'] : null;
+        $this->container['attribute_boolean'] = isset($data['attribute_boolean']) ? $data['attribute_boolean'] : null;
+        $this->container['wrapped_array'] = isset($data['wrapped_array']) ? $data['wrapped_array'] : null;
+        $this->container['name_string'] = isset($data['name_string']) ? $data['name_string'] : null;
+        $this->container['name_number'] = isset($data['name_number']) ? $data['name_number'] : null;
+        $this->container['name_integer'] = isset($data['name_integer']) ? $data['name_integer'] : null;
+        $this->container['name_boolean'] = isset($data['name_boolean']) ? $data['name_boolean'] : null;
+        $this->container['name_array'] = isset($data['name_array']) ? $data['name_array'] : null;
+        $this->container['name_wrapped_array'] = isset($data['name_wrapped_array']) ? $data['name_wrapped_array'] : null;
+        $this->container['prefix_string'] = isset($data['prefix_string']) ? $data['prefix_string'] : null;
+        $this->container['prefix_number'] = isset($data['prefix_number']) ? $data['prefix_number'] : null;
+        $this->container['prefix_integer'] = isset($data['prefix_integer']) ? $data['prefix_integer'] : null;
+        $this->container['prefix_boolean'] = isset($data['prefix_boolean']) ? $data['prefix_boolean'] : null;
+        $this->container['prefix_array'] = isset($data['prefix_array']) ? $data['prefix_array'] : null;
+        $this->container['prefix_wrapped_array'] = isset($data['prefix_wrapped_array']) ? $data['prefix_wrapped_array'] : null;
+        $this->container['namespace_string'] = isset($data['namespace_string']) ? $data['namespace_string'] : null;
+        $this->container['namespace_number'] = isset($data['namespace_number']) ? $data['namespace_number'] : null;
+        $this->container['namespace_integer'] = isset($data['namespace_integer']) ? $data['namespace_integer'] : null;
+        $this->container['namespace_boolean'] = isset($data['namespace_boolean']) ? $data['namespace_boolean'] : null;
+        $this->container['namespace_array'] = isset($data['namespace_array']) ? $data['namespace_array'] : null;
+        $this->container['namespace_wrapped_array'] = isset($data['namespace_wrapped_array']) ? $data['namespace_wrapped_array'] : null;
+        $this->container['prefix_ns_string'] = isset($data['prefix_ns_string']) ? $data['prefix_ns_string'] : null;
+        $this->container['prefix_ns_number'] = isset($data['prefix_ns_number']) ? $data['prefix_ns_number'] : null;
+        $this->container['prefix_ns_integer'] = isset($data['prefix_ns_integer']) ? $data['prefix_ns_integer'] : null;
+        $this->container['prefix_ns_boolean'] = isset($data['prefix_ns_boolean']) ? $data['prefix_ns_boolean'] : null;
+        $this->container['prefix_ns_array'] = isset($data['prefix_ns_array']) ? $data['prefix_ns_array'] : null;
+        $this->container['prefix_ns_wrapped_array'] = isset($data['prefix_ns_wrapped_array']) ? $data['prefix_ns_wrapped_array'] : null;
+    }
+
+    /**
+     * Show all the invalid properties with reasons.
+     *
+     * @return array invalid properties with reasons
+     */
+    public function listInvalidProperties()
+    {
+        $invalidProperties = [];
+
+        return $invalidProperties;
+    }
+
+    /**
+     * Validate all the properties in the model
+     * return true if all passed
+     *
+     * @return bool True if all properties are valid
+     */
+    public function valid()
+    {
+        return count($this->listInvalidProperties()) === 0;
+    }
+
+
+    /**
+     * Gets attribute_string
+     *
+     * @return string|null
+     */
+    public function getAttributeString()
+    {
+        return $this->container['attribute_string'];
+    }
+
+    /**
+     * Sets attribute_string
+     *
+     * @param string|null $attribute_string attribute_string
+     *
+     * @return $this
+     */
+    public function setAttributeString($attribute_string)
+    {
+        $this->container['attribute_string'] = $attribute_string;
+
+        return $this;
+    }
+
+    /**
+     * Gets attribute_number
+     *
+     * @return float|null
+     */
+    public function getAttributeNumber()
+    {
+        return $this->container['attribute_number'];
+    }
+
+    /**
+     * Sets attribute_number
+     *
+     * @param float|null $attribute_number attribute_number
+     *
+     * @return $this
+     */
+    public function setAttributeNumber($attribute_number)
+    {
+        $this->container['attribute_number'] = $attribute_number;
+
+        return $this;
+    }
+
+    /**
+     * Gets attribute_integer
+     *
+     * @return int|null
+     */
+    public function getAttributeInteger()
+    {
+        return $this->container['attribute_integer'];
+    }
+
+    /**
+     * Sets attribute_integer
+     *
+     * @param int|null $attribute_integer attribute_integer
+     *
+     * @return $this
+     */
+    public function setAttributeInteger($attribute_integer)
+    {
+        $this->container['attribute_integer'] = $attribute_integer;
+
+        return $this;
+    }
+
+    /**
+     * Gets attribute_boolean
+     *
+     * @return bool|null
+     */
+    public function getAttributeBoolean()
+    {
+        return $this->container['attribute_boolean'];
+    }
+
+    /**
+     * Sets attribute_boolean
+     *
+     * @param bool|null $attribute_boolean attribute_boolean
+     *
+     * @return $this
+     */
+    public function setAttributeBoolean($attribute_boolean)
+    {
+        $this->container['attribute_boolean'] = $attribute_boolean;
+
+        return $this;
+    }
+
+    /**
+     * Gets wrapped_array
+     *
+     * @return int[]|null
+     */
+    public function getWrappedArray()
+    {
+        return $this->container['wrapped_array'];
+    }
+
+    /**
+     * Sets wrapped_array
+     *
+     * @param int[]|null $wrapped_array wrapped_array
+     *
+     * @return $this
+     */
+    public function setWrappedArray($wrapped_array)
+    {
+        $this->container['wrapped_array'] = $wrapped_array;
+
+        return $this;
+    }
+
+    /**
+     * Gets name_string
+     *
+     * @return string|null
+     */
+    public function getNameString()
+    {
+        return $this->container['name_string'];
+    }
+
+    /**
+     * Sets name_string
+     *
+     * @param string|null $name_string name_string
+     *
+     * @return $this
+     */
+    public function setNameString($name_string)
+    {
+        $this->container['name_string'] = $name_string;
+
+        return $this;
+    }
+
+    /**
+     * Gets name_number
+     *
+     * @return float|null
+     */
+    public function getNameNumber()
+    {
+        return $this->container['name_number'];
+    }
+
+    /**
+     * Sets name_number
+     *
+     * @param float|null $name_number name_number
+     *
+     * @return $this
+     */
+    public function setNameNumber($name_number)
+    {
+        $this->container['name_number'] = $name_number;
+
+        return $this;
+    }
+
+    /**
+     * Gets name_integer
+     *
+     * @return int|null
+     */
+    public function getNameInteger()
+    {
+        return $this->container['name_integer'];
+    }
+
+    /**
+     * Sets name_integer
+     *
+     * @param int|null $name_integer name_integer
+     *
+     * @return $this
+     */
+    public function setNameInteger($name_integer)
+    {
+        $this->container['name_integer'] = $name_integer;
+
+        return $this;
+    }
+
+    /**
+     * Gets name_boolean
+     *
+     * @return bool|null
+     */
+    public function getNameBoolean()
+    {
+        return $this->container['name_boolean'];
+    }
+
+    /**
+     * Sets name_boolean
+     *
+     * @param bool|null $name_boolean name_boolean
+     *
+     * @return $this
+     */
+    public function setNameBoolean($name_boolean)
+    {
+        $this->container['name_boolean'] = $name_boolean;
+
+        return $this;
+    }
+
+    /**
+     * Gets name_array
+     *
+     * @return int[]|null
+     */
+    public function getNameArray()
+    {
+        return $this->container['name_array'];
+    }
+
+    /**
+     * Sets name_array
+     *
+     * @param int[]|null $name_array name_array
+     *
+     * @return $this
+     */
+    public function setNameArray($name_array)
+    {
+        $this->container['name_array'] = $name_array;
+
+        return $this;
+    }
+
+    /**
+     * Gets name_wrapped_array
+     *
+     * @return int[]|null
+     */
+    public function getNameWrappedArray()
+    {
+        return $this->container['name_wrapped_array'];
+    }
+
+    /**
+     * Sets name_wrapped_array
+     *
+     * @param int[]|null $name_wrapped_array name_wrapped_array
+     *
+     * @return $this
+     */
+    public function setNameWrappedArray($name_wrapped_array)
+    {
+        $this->container['name_wrapped_array'] = $name_wrapped_array;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_string
+     *
+     * @return string|null
+     */
+    public function getPrefixString()
+    {
+        return $this->container['prefix_string'];
+    }
+
+    /**
+     * Sets prefix_string
+     *
+     * @param string|null $prefix_string prefix_string
+     *
+     * @return $this
+     */
+    public function setPrefixString($prefix_string)
+    {
+        $this->container['prefix_string'] = $prefix_string;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_number
+     *
+     * @return float|null
+     */
+    public function getPrefixNumber()
+    {
+        return $this->container['prefix_number'];
+    }
+
+    /**
+     * Sets prefix_number
+     *
+     * @param float|null $prefix_number prefix_number
+     *
+     * @return $this
+     */
+    public function setPrefixNumber($prefix_number)
+    {
+        $this->container['prefix_number'] = $prefix_number;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_integer
+     *
+     * @return int|null
+     */
+    public function getPrefixInteger()
+    {
+        return $this->container['prefix_integer'];
+    }
+
+    /**
+     * Sets prefix_integer
+     *
+     * @param int|null $prefix_integer prefix_integer
+     *
+     * @return $this
+     */
+    public function setPrefixInteger($prefix_integer)
+    {
+        $this->container['prefix_integer'] = $prefix_integer;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_boolean
+     *
+     * @return bool|null
+     */
+    public function getPrefixBoolean()
+    {
+        return $this->container['prefix_boolean'];
+    }
+
+    /**
+     * Sets prefix_boolean
+     *
+     * @param bool|null $prefix_boolean prefix_boolean
+     *
+     * @return $this
+     */
+    public function setPrefixBoolean($prefix_boolean)
+    {
+        $this->container['prefix_boolean'] = $prefix_boolean;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_array
+     *
+     * @return int[]|null
+     */
+    public function getPrefixArray()
+    {
+        return $this->container['prefix_array'];
+    }
+
+    /**
+     * Sets prefix_array
+     *
+     * @param int[]|null $prefix_array prefix_array
+     *
+     * @return $this
+     */
+    public function setPrefixArray($prefix_array)
+    {
+        $this->container['prefix_array'] = $prefix_array;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_wrapped_array
+     *
+     * @return int[]|null
+     */
+    public function getPrefixWrappedArray()
+    {
+        return $this->container['prefix_wrapped_array'];
+    }
+
+    /**
+     * Sets prefix_wrapped_array
+     *
+     * @param int[]|null $prefix_wrapped_array prefix_wrapped_array
+     *
+     * @return $this
+     */
+    public function setPrefixWrappedArray($prefix_wrapped_array)
+    {
+        $this->container['prefix_wrapped_array'] = $prefix_wrapped_array;
+
+        return $this;
+    }
+
+    /**
+     * Gets namespace_string
+     *
+     * @return string|null
+     */
+    public function getNamespaceString()
+    {
+        return $this->container['namespace_string'];
+    }
+
+    /**
+     * Sets namespace_string
+     *
+     * @param string|null $namespace_string namespace_string
+     *
+     * @return $this
+     */
+    public function setNamespaceString($namespace_string)
+    {
+        $this->container['namespace_string'] = $namespace_string;
+
+        return $this;
+    }
+
+    /**
+     * Gets namespace_number
+     *
+     * @return float|null
+     */
+    public function getNamespaceNumber()
+    {
+        return $this->container['namespace_number'];
+    }
+
+    /**
+     * Sets namespace_number
+     *
+     * @param float|null $namespace_number namespace_number
+     *
+     * @return $this
+     */
+    public function setNamespaceNumber($namespace_number)
+    {
+        $this->container['namespace_number'] = $namespace_number;
+
+        return $this;
+    }
+
+    /**
+     * Gets namespace_integer
+     *
+     * @return int|null
+     */
+    public function getNamespaceInteger()
+    {
+        return $this->container['namespace_integer'];
+    }
+
+    /**
+     * Sets namespace_integer
+     *
+     * @param int|null $namespace_integer namespace_integer
+     *
+     * @return $this
+     */
+    public function setNamespaceInteger($namespace_integer)
+    {
+        $this->container['namespace_integer'] = $namespace_integer;
+
+        return $this;
+    }
+
+    /**
+     * Gets namespace_boolean
+     *
+     * @return bool|null
+     */
+    public function getNamespaceBoolean()
+    {
+        return $this->container['namespace_boolean'];
+    }
+
+    /**
+     * Sets namespace_boolean
+     *
+     * @param bool|null $namespace_boolean namespace_boolean
+     *
+     * @return $this
+     */
+    public function setNamespaceBoolean($namespace_boolean)
+    {
+        $this->container['namespace_boolean'] = $namespace_boolean;
+
+        return $this;
+    }
+
+    /**
+     * Gets namespace_array
+     *
+     * @return int[]|null
+     */
+    public function getNamespaceArray()
+    {
+        return $this->container['namespace_array'];
+    }
+
+    /**
+     * Sets namespace_array
+     *
+     * @param int[]|null $namespace_array namespace_array
+     *
+     * @return $this
+     */
+    public function setNamespaceArray($namespace_array)
+    {
+        $this->container['namespace_array'] = $namespace_array;
+
+        return $this;
+    }
+
+    /**
+     * Gets namespace_wrapped_array
+     *
+     * @return int[]|null
+     */
+    public function getNamespaceWrappedArray()
+    {
+        return $this->container['namespace_wrapped_array'];
+    }
+
+    /**
+     * Sets namespace_wrapped_array
+     *
+     * @param int[]|null $namespace_wrapped_array namespace_wrapped_array
+     *
+     * @return $this
+     */
+    public function setNamespaceWrappedArray($namespace_wrapped_array)
+    {
+        $this->container['namespace_wrapped_array'] = $namespace_wrapped_array;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_ns_string
+     *
+     * @return string|null
+     */
+    public function getPrefixNsString()
+    {
+        return $this->container['prefix_ns_string'];
+    }
+
+    /**
+     * Sets prefix_ns_string
+     *
+     * @param string|null $prefix_ns_string prefix_ns_string
+     *
+     * @return $this
+     */
+    public function setPrefixNsString($prefix_ns_string)
+    {
+        $this->container['prefix_ns_string'] = $prefix_ns_string;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_ns_number
+     *
+     * @return float|null
+     */
+    public function getPrefixNsNumber()
+    {
+        return $this->container['prefix_ns_number'];
+    }
+
+    /**
+     * Sets prefix_ns_number
+     *
+     * @param float|null $prefix_ns_number prefix_ns_number
+     *
+     * @return $this
+     */
+    public function setPrefixNsNumber($prefix_ns_number)
+    {
+        $this->container['prefix_ns_number'] = $prefix_ns_number;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_ns_integer
+     *
+     * @return int|null
+     */
+    public function getPrefixNsInteger()
+    {
+        return $this->container['prefix_ns_integer'];
+    }
+
+    /**
+     * Sets prefix_ns_integer
+     *
+     * @param int|null $prefix_ns_integer prefix_ns_integer
+     *
+     * @return $this
+     */
+    public function setPrefixNsInteger($prefix_ns_integer)
+    {
+        $this->container['prefix_ns_integer'] = $prefix_ns_integer;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_ns_boolean
+     *
+     * @return bool|null
+     */
+    public function getPrefixNsBoolean()
+    {
+        return $this->container['prefix_ns_boolean'];
+    }
+
+    /**
+     * Sets prefix_ns_boolean
+     *
+     * @param bool|null $prefix_ns_boolean prefix_ns_boolean
+     *
+     * @return $this
+     */
+    public function setPrefixNsBoolean($prefix_ns_boolean)
+    {
+        $this->container['prefix_ns_boolean'] = $prefix_ns_boolean;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_ns_array
+     *
+     * @return int[]|null
+     */
+    public function getPrefixNsArray()
+    {
+        return $this->container['prefix_ns_array'];
+    }
+
+    /**
+     * Sets prefix_ns_array
+     *
+     * @param int[]|null $prefix_ns_array prefix_ns_array
+     *
+     * @return $this
+     */
+    public function setPrefixNsArray($prefix_ns_array)
+    {
+        $this->container['prefix_ns_array'] = $prefix_ns_array;
+
+        return $this;
+    }
+
+    /**
+     * Gets prefix_ns_wrapped_array
+     *
+     * @return int[]|null
+     */
+    public function getPrefixNsWrappedArray()
+    {
+        return $this->container['prefix_ns_wrapped_array'];
+    }
+
+    /**
+     * Sets prefix_ns_wrapped_array
+     *
+     * @param int[]|null $prefix_ns_wrapped_array prefix_ns_wrapped_array
+     *
+     * @return $this
+     */
+    public function setPrefixNsWrappedArray($prefix_ns_wrapped_array)
+    {
+        $this->container['prefix_ns_wrapped_array'] = $prefix_ns_wrapped_array;
+
+        return $this;
+    }
+    /**
+     * Returns true if offset exists. False otherwise.
+     *
+     * @param integer $offset Offset
+     *
+     * @return boolean
+     */
+    public function offsetExists($offset)
+    {
+        return isset($this->container[$offset]);
+    }
+
+    /**
+     * Gets offset.
+     *
+     * @param integer $offset Offset
+     *
+     * @return mixed
+     */
+    public function offsetGet($offset)
+    {
+        return isset($this->container[$offset]) ? $this->container[$offset] : null;
+    }
+
+    /**
+     * Sets value based on offset.
+     *
+     * @param integer $offset Offset
+     * @param mixed   $value  Value to be set
+     *
+     * @return void
+     */
+    public function offsetSet($offset, $value)
+    {
+        if (is_null($offset)) {
+            $this->container[] = $value;
+        } else {
+            $this->container[$offset] = $value;
+        }
+    }
+
+    /**
+     * Unsets offset.
+     *
+     * @param integer $offset Offset
+     *
+     * @return void
+     */
+    public function offsetUnset($offset)
+    {
+        unset($this->container[$offset]);
+    }
+
+    /**
+     * Gets the string presentation of the object
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return json_encode(
+            ObjectSerializer::sanitizeForSerialization($this),
+            JSON_PRETTY_PRINT
+        );
+    }
+}
+
+
diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php
index bd8bb23f6bb4d1981c850f3937e5428cb77801a3..2e6b42e7a689db3015c459f1f8d82e4d9be89407 100644
--- a/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php
+++ b/samples/client/petstore/php/OpenAPIClient-php/test/Api/FakeApiTest.php
@@ -72,6 +72,16 @@ class FakeApiTest extends TestCase
     {
     }
 
+    /**
+     * Test case for createXmlItem
+     *
+     * creates an XmlItem.
+     *
+     */
+    public function testCreateXmlItem()
+    {
+    }
+
     /**
      * Test case for fakeOuterBooleanSerialize
      *
diff --git a/samples/client/petstore/php/OpenAPIClient-php/test/Model/XmlItemTest.php b/samples/client/petstore/php/OpenAPIClient-php/test/Model/XmlItemTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..f7f37dc0101afb372d2680888ad952ca2d03d546
--- /dev/null
+++ b/samples/client/petstore/php/OpenAPIClient-php/test/Model/XmlItemTest.php
@@ -0,0 +1,283 @@
+<?php
+/**
+ * XmlItemTest
+ *
+ * PHP version 5
+ *
+ * @category Class
+ * @package  OpenAPI\Client
+ * @author   OpenAPI Generator team
+ * @link     https://openapi-generator.tech
+ */
+
+/**
+ * OpenAPI Petstore
+ *
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ * Generated by: https://openapi-generator.tech
+ * OpenAPI Generator version: 4.0.0-SNAPSHOT
+ */
+
+/**
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Please update the test case below to test the model.
+ */
+
+namespace OpenAPI\Client;
+
+use PHPUnit\Framework\TestCase;
+
+/**
+ * XmlItemTest Class Doc Comment
+ *
+ * @category    Class
+ * @description XmlItem
+ * @package     OpenAPI\Client
+ * @author      OpenAPI Generator team
+ * @link        https://openapi-generator.tech
+ */
+class XmlItemTest extends TestCase
+{
+
+    /**
+     * Setup before running any test case
+     */
+    public static function setUpBeforeClass()
+    {
+    }
+
+    /**
+     * Setup before running each test case
+     */
+    public function setUp()
+    {
+    }
+
+    /**
+     * Clean up after running each test case
+     */
+    public function tearDown()
+    {
+    }
+
+    /**
+     * Clean up after running all test cases
+     */
+    public static function tearDownAfterClass()
+    {
+    }
+
+    /**
+     * Test "XmlItem"
+     */
+    public function testXmlItem()
+    {
+    }
+
+    /**
+     * Test attribute "attribute_string"
+     */
+    public function testPropertyAttributeString()
+    {
+    }
+
+    /**
+     * Test attribute "attribute_number"
+     */
+    public function testPropertyAttributeNumber()
+    {
+    }
+
+    /**
+     * Test attribute "attribute_integer"
+     */
+    public function testPropertyAttributeInteger()
+    {
+    }
+
+    /**
+     * Test attribute "attribute_boolean"
+     */
+    public function testPropertyAttributeBoolean()
+    {
+    }
+
+    /**
+     * Test attribute "wrapped_array"
+     */
+    public function testPropertyWrappedArray()
+    {
+    }
+
+    /**
+     * Test attribute "name_string"
+     */
+    public function testPropertyNameString()
+    {
+    }
+
+    /**
+     * Test attribute "name_number"
+     */
+    public function testPropertyNameNumber()
+    {
+    }
+
+    /**
+     * Test attribute "name_integer"
+     */
+    public function testPropertyNameInteger()
+    {
+    }
+
+    /**
+     * Test attribute "name_boolean"
+     */
+    public function testPropertyNameBoolean()
+    {
+    }
+
+    /**
+     * Test attribute "name_array"
+     */
+    public function testPropertyNameArray()
+    {
+    }
+
+    /**
+     * Test attribute "name_wrapped_array"
+     */
+    public function testPropertyNameWrappedArray()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_string"
+     */
+    public function testPropertyPrefixString()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_number"
+     */
+    public function testPropertyPrefixNumber()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_integer"
+     */
+    public function testPropertyPrefixInteger()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_boolean"
+     */
+    public function testPropertyPrefixBoolean()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_array"
+     */
+    public function testPropertyPrefixArray()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_wrapped_array"
+     */
+    public function testPropertyPrefixWrappedArray()
+    {
+    }
+
+    /**
+     * Test attribute "namespace_string"
+     */
+    public function testPropertyNamespaceString()
+    {
+    }
+
+    /**
+     * Test attribute "namespace_number"
+     */
+    public function testPropertyNamespaceNumber()
+    {
+    }
+
+    /**
+     * Test attribute "namespace_integer"
+     */
+    public function testPropertyNamespaceInteger()
+    {
+    }
+
+    /**
+     * Test attribute "namespace_boolean"
+     */
+    public function testPropertyNamespaceBoolean()
+    {
+    }
+
+    /**
+     * Test attribute "namespace_array"
+     */
+    public function testPropertyNamespaceArray()
+    {
+    }
+
+    /**
+     * Test attribute "namespace_wrapped_array"
+     */
+    public function testPropertyNamespaceWrappedArray()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_ns_string"
+     */
+    public function testPropertyPrefixNsString()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_ns_number"
+     */
+    public function testPropertyPrefixNsNumber()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_ns_integer"
+     */
+    public function testPropertyPrefixNsInteger()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_ns_boolean"
+     */
+    public function testPropertyPrefixNsBoolean()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_ns_array"
+     */
+    public function testPropertyPrefixNsArray()
+    {
+    }
+
+    /**
+     * Test attribute "prefix_ns_wrapped_array"
+     */
+    public function testPropertyPrefixNsWrappedArray()
+    {
+    }
+}
diff --git a/samples/client/petstore/python-asyncio/README.md b/samples/client/petstore/python-asyncio/README.md
index 05c64828c81a4219421339c89defb17aefdd3f2e..218749c0433bc02c5b762b0ff4e58f1fa1926572 100644
--- a/samples/client/petstore/python-asyncio/README.md
+++ b/samples/client/petstore/python-asyncio/README.md
@@ -53,11 +53,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.AnotherFakeApi(petstore_api.ApiClient(configuration))
-client = petstore_api.Client() # Client | client model
+body = petstore_api.Client() # Client | client model
 
 try:
     # To test special tags
-    api_response = api_instance.call_123_test_special_tags(client)
+    api_response = api_instance.call_123_test_special_tags(body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling AnotherFakeApi->call_123_test_special_tags: %s\n" % e)
@@ -71,6 +71,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 Class | Method | HTTP request | Description
 ------------ | ------------- | ------------- | -------------
 *AnotherFakeApi* | [**call_123_test_special_tags**](docs/AnotherFakeApi.md#call_123_test_special_tags) | **PATCH** /another-fake/dummy | To test special tags
+*FakeApi* | [**create_xml_item**](docs/FakeApi.md#create_xml_item) | **POST** /fake/create_xml_item | creates an XmlItem
 *FakeApi* | [**fake_outer_boolean_serialize**](docs/FakeApi.md#fake_outer_boolean_serialize) | **POST** /fake/outer/boolean | 
 *FakeApi* | [**fake_outer_composite_serialize**](docs/FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite | 
 *FakeApi* | [**fake_outer_number_serialize**](docs/FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number | 
@@ -142,7 +143,10 @@ Class | Method | HTTP request | Description
  - [ReadOnlyFirst](docs/ReadOnlyFirst.md)
  - [SpecialModelName](docs/SpecialModelName.md)
  - [Tag](docs/Tag.md)
+ - [TypeHolderDefault](docs/TypeHolderDefault.md)
+ - [TypeHolderExample](docs/TypeHolderExample.md)
  - [User](docs/User.md)
+ - [XmlItem](docs/XmlItem.md)
 
 
 ## Documentation For Authorization
diff --git a/samples/client/petstore/python-asyncio/docs/AnotherFakeApi.md b/samples/client/petstore/python-asyncio/docs/AnotherFakeApi.md
index 447ce3edde3a9c4e7e6b6e4f50cb5d7bf0dc2967..53d8da58f0c11165c827195629541d9094ce6ce8 100644
--- a/samples/client/petstore/python-asyncio/docs/AnotherFakeApi.md
+++ b/samples/client/petstore/python-asyncio/docs/AnotherFakeApi.md
@@ -8,7 +8,7 @@ Method | HTTP request | Description
 
 
 # **call_123_test_special_tags**
-> Client call_123_test_special_tags(client)
+> Client call_123_test_special_tags(body)
 
 To test special tags
 
@@ -24,11 +24,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.AnotherFakeApi()
-client = petstore_api.Client() # Client | client model
+body = petstore_api.Client() # Client | client model
 
 try:
     # To test special tags
-    api_response = api_instance.call_123_test_special_tags(client)
+    api_response = api_instance.call_123_test_special_tags(body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling AnotherFakeApi->call_123_test_special_tags: %s\n" % e)
@@ -38,7 +38,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **client** | [**Client**](Client.md)| client model | 
+ **body** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-asyncio/docs/FakeApi.md b/samples/client/petstore/python-asyncio/docs/FakeApi.md
index 97dc3c892e07086ba3db5fba255f5fb1628dbcd8..d504255dd4007516a0ada2344040c45291fd463f 100644
--- a/samples/client/petstore/python-asyncio/docs/FakeApi.md
+++ b/samples/client/petstore/python-asyncio/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**create_xml_item**](FakeApi.md#create_xml_item) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fake_outer_boolean_serialize**](FakeApi.md#fake_outer_boolean_serialize) | **POST** /fake/outer/boolean | 
 [**fake_outer_composite_serialize**](FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite | 
 [**fake_outer_number_serialize**](FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,53 @@ Method | HTTP request | Description
 [**test_json_form_data**](FakeApi.md#test_json_form_data) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+# **create_xml_item**
+> create_xml_item(xml_item)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+xml_item = petstore_api.XmlItem() # XmlItem | XmlItem Body
+
+try:
+    # creates an XmlItem
+    api_instance.create_xml_item(xml_item)
+except ApiException as e:
+    print("Exception when calling FakeApi->create_xml_item: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xml_item** | [**XmlItem**](XmlItem.md)| XmlItem Body | 
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
 # **fake_outer_boolean_serialize**
 > bool fake_outer_boolean_serialize(body=body)
 
@@ -66,7 +114,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **fake_outer_composite_serialize**
-> OuterComposite fake_outer_composite_serialize(outer_composite=outer_composite)
+> OuterComposite fake_outer_composite_serialize(body=body)
 
 
 
@@ -82,10 +130,10 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.FakeApi()
-outer_composite = petstore_api.OuterComposite() # OuterComposite | Input composite as post body (optional)
+body = petstore_api.OuterComposite() # OuterComposite | Input composite as post body (optional)
 
 try:
-    api_response = api_instance.fake_outer_composite_serialize(outer_composite=outer_composite)
+    api_response = api_instance.fake_outer_composite_serialize(body=body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling FakeApi->fake_outer_composite_serialize: %s\n" % e)
@@ -95,7 +143,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **outer_composite** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] 
+ **body** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] 
 
 ### Return type
 
@@ -207,7 +255,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **test_body_with_file_schema**
-> test_body_with_file_schema(file_schema_test_class)
+> test_body_with_file_schema(body)
 
 
 
@@ -223,10 +271,10 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.FakeApi()
-file_schema_test_class = petstore_api.FileSchemaTestClass() # FileSchemaTestClass | 
+body = petstore_api.FileSchemaTestClass() # FileSchemaTestClass | 
 
 try:
-    api_instance.test_body_with_file_schema(file_schema_test_class)
+    api_instance.test_body_with_file_schema(body)
 except ApiException as e:
     print("Exception when calling FakeApi->test_body_with_file_schema: %s\n" % e)
 ```
@@ -235,7 +283,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **file_schema_test_class** | [**FileSchemaTestClass**](FileSchemaTestClass.md)|  | 
+ **body** | [**FileSchemaTestClass**](FileSchemaTestClass.md)|  | 
 
 ### Return type
 
@@ -253,7 +301,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **test_body_with_query_params**
-> test_body_with_query_params(query, user)
+> test_body_with_query_params(query, body)
 
 
 
@@ -268,10 +316,10 @@ from pprint import pprint
 # create an instance of the API class
 api_instance = petstore_api.FakeApi()
 query = 'query_example' # str | 
-user = petstore_api.User() # User | 
+body = petstore_api.User() # User | 
 
 try:
-    api_instance.test_body_with_query_params(query, user)
+    api_instance.test_body_with_query_params(query, body)
 except ApiException as e:
     print("Exception when calling FakeApi->test_body_with_query_params: %s\n" % e)
 ```
@@ -281,7 +329,7 @@ except ApiException as e:
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
  **query** | **str**|  | 
- **user** | [**User**](User.md)|  | 
+ **body** | [**User**](User.md)|  | 
 
 ### Return type
 
@@ -299,7 +347,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **test_client_model**
-> Client test_client_model(client)
+> Client test_client_model(body)
 
 To test \"client\" model
 
@@ -315,11 +363,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.FakeApi()
-client = petstore_api.Client() # Client | client model
+body = petstore_api.Client() # Client | client model
 
 try:
     # To test \"client\" model
-    api_response = api_instance.test_client_model(client)
+    api_response = api_instance.test_client_model(body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling FakeApi->test_client_model: %s\n" % e)
@@ -329,7 +377,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **client** | [**Client**](Client.md)| client model | 
+ **body** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
@@ -545,7 +593,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **test_inline_additional_properties**
-> test_inline_additional_properties(request_body)
+> test_inline_additional_properties(param)
 
 test inline additionalProperties
 
@@ -559,11 +607,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.FakeApi()
-request_body = {'key': 'request_body_example'} # dict(str, str) | request body
+param = {'key': 'param_example'} # dict(str, str) | request body
 
 try:
     # test inline additionalProperties
-    api_instance.test_inline_additional_properties(request_body)
+    api_instance.test_inline_additional_properties(param)
 except ApiException as e:
     print("Exception when calling FakeApi->test_inline_additional_properties: %s\n" % e)
 ```
@@ -572,7 +620,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **request_body** | [**dict(str, str)**](str.md)| request body | 
+ **param** | [**dict(str, str)**](str.md)| request body | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-asyncio/docs/FakeClassnameTags123Api.md b/samples/client/petstore/python-asyncio/docs/FakeClassnameTags123Api.md
index 3180674a077d747b6a86c8c3617583a10b1693ba..64bb06890df50e75012682449aa282dc1b08f41c 100644
--- a/samples/client/petstore/python-asyncio/docs/FakeClassnameTags123Api.md
+++ b/samples/client/petstore/python-asyncio/docs/FakeClassnameTags123Api.md
@@ -8,7 +8,7 @@ Method | HTTP request | Description
 
 
 # **test_classname**
-> Client test_classname(client)
+> Client test_classname(body)
 
 To test class name in snake case
 
@@ -32,11 +32,11 @@ configuration.api_key['api_key_query'] = 'YOUR_API_KEY'
 
 # create an instance of the API class
 api_instance = petstore_api.FakeClassnameTags123Api(petstore_api.ApiClient(configuration))
-client = petstore_api.Client() # Client | client model
+body = petstore_api.Client() # Client | client model
 
 try:
     # To test class name in snake case
-    api_response = api_instance.test_classname(client)
+    api_response = api_instance.test_classname(body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling FakeClassnameTags123Api->test_classname: %s\n" % e)
@@ -46,7 +46,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **client** | [**Client**](Client.md)| client model | 
+ **body** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-asyncio/docs/Pet.md b/samples/client/petstore/python-asyncio/docs/Pet.md
index 9e15090300f8ab4966b0f898b13bda00fa457c5b..f9ea079075d1ee5fec398e4cadadfed041800780 100644
--- a/samples/client/petstore/python-asyncio/docs/Pet.md
+++ b/samples/client/petstore/python-asyncio/docs/Pet.md
@@ -5,7 +5,7 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **id** | **int** |  | [optional] 
 **category** | [**Category**](Category.md) |  | [optional] 
-**name** | **str** |  | 
+**name** | **str** |  | [default to 'doggie']
 **photo_urls** | **list[str]** |  | 
 **tags** | [**list[Tag]**](Tag.md) |  | [optional] 
 **status** | **str** | pet status in the store | [optional] 
diff --git a/samples/client/petstore/python-asyncio/docs/PetApi.md b/samples/client/petstore/python-asyncio/docs/PetApi.md
index 726db4708d7693c46b4ed71c677d786886115057..8a0604706dbf3737e7207a8d8e0111293ae313f9 100644
--- a/samples/client/petstore/python-asyncio/docs/PetApi.md
+++ b/samples/client/petstore/python-asyncio/docs/PetApi.md
@@ -16,7 +16,7 @@ Method | HTTP request | Description
 
 
 # **add_pet**
-> add_pet(pet)
+> add_pet(body)
 
 Add a new pet to the store
 
@@ -36,11 +36,11 @@ configuration.access_token = 'YOUR_ACCESS_TOKEN'
 
 # create an instance of the API class
 api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
-pet = petstore_api.Pet() # Pet | Pet object that needs to be added to the store
+body = petstore_api.Pet() # Pet | Pet object that needs to be added to the store
 
 try:
     # Add a new pet to the store
-    api_instance.add_pet(pet)
+    api_instance.add_pet(body)
 except ApiException as e:
     print("Exception when calling PetApi->add_pet: %s\n" % e)
 ```
@@ -49,7 +49,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
+ **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
 
 ### Return type
 
@@ -284,7 +284,7 @@ Name | Type | Description  | Notes
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **update_pet**
-> update_pet(pet)
+> update_pet(body)
 
 Update an existing pet
 
@@ -304,11 +304,11 @@ configuration.access_token = 'YOUR_ACCESS_TOKEN'
 
 # create an instance of the API class
 api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
-pet = petstore_api.Pet() # Pet | Pet object that needs to be added to the store
+body = petstore_api.Pet() # Pet | Pet object that needs to be added to the store
 
 try:
     # Update an existing pet
-    api_instance.update_pet(pet)
+    api_instance.update_pet(body)
 except ApiException as e:
     print("Exception when calling PetApi->update_pet: %s\n" % e)
 ```
@@ -317,7 +317,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
+ **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-asyncio/docs/StoreApi.md b/samples/client/petstore/python-asyncio/docs/StoreApi.md
index ab342460f865f289f2ea3302f69e9269904fb452..11f04da636e97416586d268b847039e131ba687a 100644
--- a/samples/client/petstore/python-asyncio/docs/StoreApi.md
+++ b/samples/client/petstore/python-asyncio/docs/StoreApi.md
@@ -158,7 +158,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **place_order**
-> Order place_order(order)
+> Order place_order(body)
 
 Place an order for a pet
 
@@ -172,11 +172,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.StoreApi()
-order = petstore_api.Order() # Order | order placed for purchasing the pet
+body = petstore_api.Order() # Order | order placed for purchasing the pet
 
 try:
     # Place an order for a pet
-    api_response = api_instance.place_order(order)
+    api_response = api_instance.place_order(body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling StoreApi->place_order: %s\n" % e)
@@ -186,7 +186,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **order** | [**Order**](Order.md)| order placed for purchasing the pet | 
+ **body** | [**Order**](Order.md)| order placed for purchasing the pet | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-asyncio/docs/TypeHolderDefault.md b/samples/client/petstore/python-asyncio/docs/TypeHolderDefault.md
new file mode 100644
index 0000000000000000000000000000000000000000..861da021826a5743f4a2d8f4ee528981dad83ead
--- /dev/null
+++ b/samples/client/petstore/python-asyncio/docs/TypeHolderDefault.md
@@ -0,0 +1,14 @@
+# TypeHolderDefault
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**string_item** | **str** |  | [default to 'what']
+**number_item** | **float** |  | 
+**integer_item** | **int** |  | 
+**bool_item** | **bool** |  | [default to True]
+**array_item** | **list[int]** |  | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/client/petstore/python-asyncio/docs/TypeHolderExample.md b/samples/client/petstore/python-asyncio/docs/TypeHolderExample.md
new file mode 100644
index 0000000000000000000000000000000000000000..1a1535f4dee30a2df36d5a2233b63b6d33e42175
--- /dev/null
+++ b/samples/client/petstore/python-asyncio/docs/TypeHolderExample.md
@@ -0,0 +1,14 @@
+# TypeHolderExample
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**string_item** | **str** |  | [default to 'what']
+**number_item** | **float** |  | [default to 1.234]
+**integer_item** | **int** |  | [default to -2]
+**bool_item** | **bool** |  | [default to True]
+**array_item** | **list[int]** |  | [default to [0, 1, 2, 3]]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/client/petstore/python-asyncio/docs/UserApi.md b/samples/client/petstore/python-asyncio/docs/UserApi.md
index c7cc8b64d6638cdf3baa9a3219c16c19b6e8bbee..f0d9581779c66490970ae5ebf4d1cda982f78faa 100644
--- a/samples/client/petstore/python-asyncio/docs/UserApi.md
+++ b/samples/client/petstore/python-asyncio/docs/UserApi.md
@@ -15,7 +15,7 @@ Method | HTTP request | Description
 
 
 # **create_user**
-> create_user(user)
+> create_user(body)
 
 Create user
 
@@ -31,11 +31,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.UserApi()
-user = petstore_api.User() # User | Created user object
+body = petstore_api.User() # User | Created user object
 
 try:
     # Create user
-    api_instance.create_user(user)
+    api_instance.create_user(body)
 except ApiException as e:
     print("Exception when calling UserApi->create_user: %s\n" % e)
 ```
@@ -44,7 +44,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **user** | [**User**](User.md)| Created user object | 
+ **body** | [**User**](User.md)| Created user object | 
 
 ### Return type
 
@@ -62,7 +62,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **create_users_with_array_input**
-> create_users_with_array_input(user)
+> create_users_with_array_input(body)
 
 Creates list of users with given input array
 
@@ -76,11 +76,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.UserApi()
-user = NULL # list[User] | List of user object
+body = NULL # list[User] | List of user object
 
 try:
     # Creates list of users with given input array
-    api_instance.create_users_with_array_input(user)
+    api_instance.create_users_with_array_input(body)
 except ApiException as e:
     print("Exception when calling UserApi->create_users_with_array_input: %s\n" % e)
 ```
@@ -89,7 +89,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **user** | [**list[User]**](list.md)| List of user object | 
+ **body** | [**list[User]**](list.md)| List of user object | 
 
 ### Return type
 
@@ -107,7 +107,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **create_users_with_list_input**
-> create_users_with_list_input(user)
+> create_users_with_list_input(body)
 
 Creates list of users with given input array
 
@@ -121,11 +121,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.UserApi()
-user = NULL # list[User] | List of user object
+body = NULL # list[User] | List of user object
 
 try:
     # Creates list of users with given input array
-    api_instance.create_users_with_list_input(user)
+    api_instance.create_users_with_list_input(body)
 except ApiException as e:
     print("Exception when calling UserApi->create_users_with_list_input: %s\n" % e)
 ```
@@ -134,7 +134,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **user** | [**list[User]**](list.md)| List of user object | 
+ **body** | [**list[User]**](list.md)| List of user object | 
 
 ### Return type
 
@@ -334,7 +334,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **update_user**
-> update_user(username, user)
+> update_user(username, body)
 
 Updated user
 
@@ -351,11 +351,11 @@ from pprint import pprint
 # create an instance of the API class
 api_instance = petstore_api.UserApi()
 username = 'username_example' # str | name that need to be deleted
-user = petstore_api.User() # User | Updated user object
+body = petstore_api.User() # User | Updated user object
 
 try:
     # Updated user
-    api_instance.update_user(username, user)
+    api_instance.update_user(username, body)
 except ApiException as e:
     print("Exception when calling UserApi->update_user: %s\n" % e)
 ```
@@ -365,7 +365,7 @@ except ApiException as e:
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
  **username** | **str**| name that need to be deleted | 
- **user** | [**User**](User.md)| Updated user object | 
+ **body** | [**User**](User.md)| Updated user object | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-asyncio/docs/XmlItem.md b/samples/client/petstore/python-asyncio/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..929e09ef5294dac857b0c3e4a7ddcd1f3dec88ba
--- /dev/null
+++ b/samples/client/petstore/python-asyncio/docs/XmlItem.md
@@ -0,0 +1,38 @@
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute_string** | **str** |  | [optional] [default to 'string']
+**attribute_number** | **float** |  | [optional] [default to 1.234]
+**attribute_integer** | **int** |  | [optional] [default to -2]
+**attribute_boolean** | **bool** |  | [optional] [default to True]
+**wrapped_array** | **list[int]** |  | [optional] 
+**name_string** | **str** |  | [optional] [default to 'string']
+**name_number** | **float** |  | [optional] [default to 1.234]
+**name_integer** | **int** |  | [optional] [default to -2]
+**name_boolean** | **bool** |  | [optional] [default to True]
+**name_array** | **list[int]** |  | [optional] 
+**name_wrapped_array** | **list[int]** |  | [optional] 
+**prefix_string** | **str** |  | [optional] [default to 'string']
+**prefix_number** | **float** |  | [optional] [default to 1.234]
+**prefix_integer** | **int** |  | [optional] [default to -2]
+**prefix_boolean** | **bool** |  | [optional] [default to True]
+**prefix_array** | **list[int]** |  | [optional] 
+**prefix_wrapped_array** | **list[int]** |  | [optional] 
+**namespace_string** | **str** |  | [optional] [default to 'string']
+**namespace_number** | **float** |  | [optional] [default to 1.234]
+**namespace_integer** | **int** |  | [optional] [default to -2]
+**namespace_boolean** | **bool** |  | [optional] [default to True]
+**namespace_array** | **list[int]** |  | [optional] 
+**namespace_wrapped_array** | **list[int]** |  | [optional] 
+**prefix_ns_string** | **str** |  | [optional] [default to 'string']
+**prefix_ns_number** | **float** |  | [optional] [default to 1.234]
+**prefix_ns_integer** | **int** |  | [optional] [default to -2]
+**prefix_ns_boolean** | **bool** |  | [optional] [default to True]
+**prefix_ns_array** | **list[int]** |  | [optional] 
+**prefix_ns_wrapped_array** | **list[int]** |  | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/client/petstore/python-asyncio/petstore_api/__init__.py b/samples/client/petstore/python-asyncio/petstore_api/__init__.py
index 88ac77881e3e70e5b1267f702922c6276345ba25..cf9b1b0db3f981f63a6ccf01d74b9644766e58ab 100644
--- a/samples/client/petstore/python-asyncio/petstore_api/__init__.py
+++ b/samples/client/petstore/python-asyncio/petstore_api/__init__.py
@@ -61,4 +61,7 @@ from petstore_api.models.pet import Pet
 from petstore_api.models.read_only_first import ReadOnlyFirst
 from petstore_api.models.special_model_name import SpecialModelName
 from petstore_api.models.tag import Tag
+from petstore_api.models.type_holder_default import TypeHolderDefault
+from petstore_api.models.type_holder_example import TypeHolderExample
 from petstore_api.models.user import User
+from petstore_api.models.xml_item import XmlItem
diff --git a/samples/client/petstore/python-asyncio/petstore_api/api/another_fake_api.py b/samples/client/petstore/python-asyncio/petstore_api/api/another_fake_api.py
index 782f7fd07b35354ed505ae6951be6d515524c639..9fd3f816b9caae8e15ead4bcc26dff97a8856255 100644
--- a/samples/client/petstore/python-asyncio/petstore_api/api/another_fake_api.py
+++ b/samples/client/petstore/python-asyncio/petstore_api/api/another_fake_api.py
@@ -32,39 +32,39 @@ class AnotherFakeApi(object):
             api_client = ApiClient()
         self.api_client = api_client
 
-    def call_123_test_special_tags(self, client, **kwargs):  # noqa: E501
+    def call_123_test_special_tags(self, body, **kwargs):  # noqa: E501
         """To test special tags  # noqa: E501
 
         To test special tags and operation ID starting with number  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.call_123_test_special_tags(client, async_req=True)
+        >>> thread = api.call_123_test_special_tags(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.call_123_test_special_tags_with_http_info(client, **kwargs)  # noqa: E501
+            return self.call_123_test_special_tags_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.call_123_test_special_tags_with_http_info(client, **kwargs)  # noqa: E501
+            (data) = self.call_123_test_special_tags_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def call_123_test_special_tags_with_http_info(self, client, **kwargs):  # noqa: E501
+    def call_123_test_special_tags_with_http_info(self, body, **kwargs):  # noqa: E501
         """To test special tags  # noqa: E501
 
         To test special tags and operation ID starting with number  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.call_123_test_special_tags_with_http_info(client, async_req=True)
+        >>> thread = api.call_123_test_special_tags_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
@@ -72,7 +72,7 @@ class AnotherFakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['client']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -86,10 +86,10 @@ class AnotherFakeApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'client' is set
-        if ('client' not in local_var_params or
-                local_var_params['client'] is None):
-            raise ValueError("Missing the required parameter `client` when calling `call_123_test_special_tags`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `call_123_test_special_tags`")  # noqa: E501
 
         collection_formats = {}
 
@@ -103,8 +103,8 @@ class AnotherFakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'client' in local_var_params:
-            body_params = local_var_params['client']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Accept`
         header_params['Accept'] = self.api_client.select_header_accept(
             ['application/json'])  # noqa: E501
diff --git a/samples/client/petstore/python-asyncio/petstore_api/api/fake_api.py b/samples/client/petstore/python-asyncio/petstore_api/api/fake_api.py
index 1647628c40758b9871c978440e3051629ef92651..c7405e51c38100e8cce59314aaa0d186ec47a27a 100644
--- a/samples/client/petstore/python-asyncio/petstore_api/api/fake_api.py
+++ b/samples/client/petstore/python-asyncio/petstore_api/api/fake_api.py
@@ -32,6 +32,102 @@ class FakeApi(object):
             api_client = ApiClient()
         self.api_client = api_client
 
+    def create_xml_item(self, xml_item, **kwargs):  # noqa: E501
+        """creates an XmlItem  # noqa: E501
+
+        this route creates an XmlItem  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+        >>> thread = api.create_xml_item(xml_item, async_req=True)
+        >>> result = thread.get()
+
+        :param async_req bool
+        :param XmlItem xml_item: XmlItem Body (required)
+        :return: None
+                 If the method is called asynchronously,
+                 returns the request thread.
+        """
+        kwargs['_return_http_data_only'] = True
+        if kwargs.get('async_req'):
+            return self.create_xml_item_with_http_info(xml_item, **kwargs)  # noqa: E501
+        else:
+            (data) = self.create_xml_item_with_http_info(xml_item, **kwargs)  # noqa: E501
+            return data
+
+    def create_xml_item_with_http_info(self, xml_item, **kwargs):  # noqa: E501
+        """creates an XmlItem  # noqa: E501
+
+        this route creates an XmlItem  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+        >>> thread = api.create_xml_item_with_http_info(xml_item, async_req=True)
+        >>> result = thread.get()
+
+        :param async_req bool
+        :param XmlItem xml_item: XmlItem Body (required)
+        :return: None
+                 If the method is called asynchronously,
+                 returns the request thread.
+        """
+
+        local_var_params = locals()
+
+        all_params = ['xml_item']  # noqa: E501
+        all_params.append('async_req')
+        all_params.append('_return_http_data_only')
+        all_params.append('_preload_content')
+        all_params.append('_request_timeout')
+
+        for key, val in six.iteritems(local_var_params['kwargs']):
+            if key not in all_params:
+                raise TypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method create_xml_item" % key
+                )
+            local_var_params[key] = val
+        del local_var_params['kwargs']
+        # verify the required parameter 'xml_item' is set
+        if ('xml_item' not in local_var_params or
+                local_var_params['xml_item'] is None):
+            raise ValueError("Missing the required parameter `xml_item` when calling `create_xml_item`")  # noqa: E501
+
+        collection_formats = {}
+
+        path_params = {}
+
+        query_params = []
+
+        header_params = {}
+
+        form_params = []
+        local_var_files = {}
+
+        body_params = None
+        if 'xml_item' in local_var_params:
+            body_params = local_var_params['xml_item']
+        # HTTP header `Content-Type`
+        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
+            ['application/xml', 'application/xml; charset=utf-8', 'application/xml; charset=utf-16', 'text/xml', 'text/xml; charset=utf-8', 'text/xml; charset=utf-16'])  # noqa: E501
+
+        # Authentication setting
+        auth_settings = []  # noqa: E501
+
+        return self.api_client.call_api(
+            '/fake/create_xml_item', 'POST',
+            path_params,
+            query_params,
+            header_params,
+            body=body_params,
+            post_params=form_params,
+            files=local_var_files,
+            response_type=None,  # noqa: E501
+            auth_settings=auth_settings,
+            async_req=local_var_params.get('async_req'),
+            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=local_var_params.get('_preload_content', True),
+            _request_timeout=local_var_params.get('_request_timeout'),
+            collection_formats=collection_formats)
+
     def fake_outer_boolean_serialize(self, **kwargs):  # noqa: E501
         """fake_outer_boolean_serialize  # noqa: E501
 
@@ -134,7 +230,7 @@ class FakeApi(object):
         >>> result = thread.get()
 
         :param async_req bool
-        :param OuterComposite outer_composite: Input composite as post body
+        :param OuterComposite body: Input composite as post body
         :return: OuterComposite
                  If the method is called asynchronously,
                  returns the request thread.
@@ -156,7 +252,7 @@ class FakeApi(object):
         >>> result = thread.get()
 
         :param async_req bool
-        :param OuterComposite outer_composite: Input composite as post body
+        :param OuterComposite body: Input composite as post body
         :return: OuterComposite
                  If the method is called asynchronously,
                  returns the request thread.
@@ -164,7 +260,7 @@ class FakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['outer_composite']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -191,8 +287,8 @@ class FakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'outer_composite' in local_var_params:
-            body_params = local_var_params['outer_composite']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Accept`
         header_params['Accept'] = self.api_client.select_header_accept(
             ['*/*'])  # noqa: E501
@@ -400,39 +496,39 @@ class FakeApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def test_body_with_file_schema(self, file_schema_test_class, **kwargs):  # noqa: E501
+    def test_body_with_file_schema(self, body, **kwargs):  # noqa: E501
         """test_body_with_file_schema  # noqa: E501
 
         For this test, the body for this request much reference a schema named `File`.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_body_with_file_schema(file_schema_test_class, async_req=True)
+        >>> thread = api.test_body_with_file_schema(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param FileSchemaTestClass file_schema_test_class: (required)
+        :param FileSchemaTestClass body: (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.test_body_with_file_schema_with_http_info(file_schema_test_class, **kwargs)  # noqa: E501
+            return self.test_body_with_file_schema_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.test_body_with_file_schema_with_http_info(file_schema_test_class, **kwargs)  # noqa: E501
+            (data) = self.test_body_with_file_schema_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def test_body_with_file_schema_with_http_info(self, file_schema_test_class, **kwargs):  # noqa: E501
+    def test_body_with_file_schema_with_http_info(self, body, **kwargs):  # noqa: E501
         """test_body_with_file_schema  # noqa: E501
 
         For this test, the body for this request much reference a schema named `File`.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_body_with_file_schema_with_http_info(file_schema_test_class, async_req=True)
+        >>> thread = api.test_body_with_file_schema_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param FileSchemaTestClass file_schema_test_class: (required)
+        :param FileSchemaTestClass body: (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -440,7 +536,7 @@ class FakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['file_schema_test_class']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -454,10 +550,10 @@ class FakeApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'file_schema_test_class' is set
-        if ('file_schema_test_class' not in local_var_params or
-                local_var_params['file_schema_test_class'] is None):
-            raise ValueError("Missing the required parameter `file_schema_test_class` when calling `test_body_with_file_schema`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `test_body_with_file_schema`")  # noqa: E501
 
         collection_formats = {}
 
@@ -471,8 +567,8 @@ class FakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'file_schema_test_class' in local_var_params:
-            body_params = local_var_params['file_schema_test_class']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Content-Type`
         header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
             ['application/json'])  # noqa: E501
@@ -496,39 +592,39 @@ class FakeApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def test_body_with_query_params(self, query, user, **kwargs):  # noqa: E501
+    def test_body_with_query_params(self, query, body, **kwargs):  # noqa: E501
         """test_body_with_query_params  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_body_with_query_params(query, user, async_req=True)
+        >>> thread = api.test_body_with_query_params(query, body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
         :param str query: (required)
-        :param User user: (required)
+        :param User body: (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.test_body_with_query_params_with_http_info(query, user, **kwargs)  # noqa: E501
+            return self.test_body_with_query_params_with_http_info(query, body, **kwargs)  # noqa: E501
         else:
-            (data) = self.test_body_with_query_params_with_http_info(query, user, **kwargs)  # noqa: E501
+            (data) = self.test_body_with_query_params_with_http_info(query, body, **kwargs)  # noqa: E501
             return data
 
-    def test_body_with_query_params_with_http_info(self, query, user, **kwargs):  # noqa: E501
+    def test_body_with_query_params_with_http_info(self, query, body, **kwargs):  # noqa: E501
         """test_body_with_query_params  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_body_with_query_params_with_http_info(query, user, async_req=True)
+        >>> thread = api.test_body_with_query_params_with_http_info(query, body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
         :param str query: (required)
-        :param User user: (required)
+        :param User body: (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -536,7 +632,7 @@ class FakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['query', 'user']  # noqa: E501
+        all_params = ['query', 'body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -554,10 +650,10 @@ class FakeApi(object):
         if ('query' not in local_var_params or
                 local_var_params['query'] is None):
             raise ValueError("Missing the required parameter `query` when calling `test_body_with_query_params`")  # noqa: E501
-        # verify the required parameter 'user' is set
-        if ('user' not in local_var_params or
-                local_var_params['user'] is None):
-            raise ValueError("Missing the required parameter `user` when calling `test_body_with_query_params`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `test_body_with_query_params`")  # noqa: E501
 
         collection_formats = {}
 
@@ -573,8 +669,8 @@ class FakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'user' in local_var_params:
-            body_params = local_var_params['user']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Content-Type`
         header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
             ['application/json'])  # noqa: E501
@@ -598,39 +694,39 @@ class FakeApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def test_client_model(self, client, **kwargs):  # noqa: E501
+    def test_client_model(self, body, **kwargs):  # noqa: E501
         """To test \"client\" model  # noqa: E501
 
         To test \"client\" model  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_client_model(client, async_req=True)
+        >>> thread = api.test_client_model(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.test_client_model_with_http_info(client, **kwargs)  # noqa: E501
+            return self.test_client_model_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.test_client_model_with_http_info(client, **kwargs)  # noqa: E501
+            (data) = self.test_client_model_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def test_client_model_with_http_info(self, client, **kwargs):  # noqa: E501
+    def test_client_model_with_http_info(self, body, **kwargs):  # noqa: E501
         """To test \"client\" model  # noqa: E501
 
         To test \"client\" model  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_client_model_with_http_info(client, async_req=True)
+        >>> thread = api.test_client_model_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
@@ -638,7 +734,7 @@ class FakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['client']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -652,10 +748,10 @@ class FakeApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'client' is set
-        if ('client' not in local_var_params or
-                local_var_params['client'] is None):
-            raise ValueError("Missing the required parameter `client` when calling `test_client_model`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `test_client_model`")  # noqa: E501
 
         collection_formats = {}
 
@@ -669,8 +765,8 @@ class FakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'client' in local_var_params:
-            body_params = local_var_params['client']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Accept`
         header_params['Accept'] = self.api_client.select_header_accept(
             ['application/json'])  # noqa: E501
@@ -1129,37 +1225,37 @@ class FakeApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def test_inline_additional_properties(self, request_body, **kwargs):  # noqa: E501
+    def test_inline_additional_properties(self, param, **kwargs):  # noqa: E501
         """test inline additionalProperties  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_inline_additional_properties(request_body, async_req=True)
+        >>> thread = api.test_inline_additional_properties(param, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param dict(str, str) request_body: request body (required)
+        :param dict(str, str) param: request body (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.test_inline_additional_properties_with_http_info(request_body, **kwargs)  # noqa: E501
+            return self.test_inline_additional_properties_with_http_info(param, **kwargs)  # noqa: E501
         else:
-            (data) = self.test_inline_additional_properties_with_http_info(request_body, **kwargs)  # noqa: E501
+            (data) = self.test_inline_additional_properties_with_http_info(param, **kwargs)  # noqa: E501
             return data
 
-    def test_inline_additional_properties_with_http_info(self, request_body, **kwargs):  # noqa: E501
+    def test_inline_additional_properties_with_http_info(self, param, **kwargs):  # noqa: E501
         """test inline additionalProperties  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_inline_additional_properties_with_http_info(request_body, async_req=True)
+        >>> thread = api.test_inline_additional_properties_with_http_info(param, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param dict(str, str) request_body: request body (required)
+        :param dict(str, str) param: request body (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -1167,7 +1263,7 @@ class FakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['request_body']  # noqa: E501
+        all_params = ['param']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -1181,10 +1277,10 @@ class FakeApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'request_body' is set
-        if ('request_body' not in local_var_params or
-                local_var_params['request_body'] is None):
-            raise ValueError("Missing the required parameter `request_body` when calling `test_inline_additional_properties`")  # noqa: E501
+        # verify the required parameter 'param' is set
+        if ('param' not in local_var_params or
+                local_var_params['param'] is None):
+            raise ValueError("Missing the required parameter `param` when calling `test_inline_additional_properties`")  # noqa: E501
 
         collection_formats = {}
 
@@ -1198,8 +1294,8 @@ class FakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'request_body' in local_var_params:
-            body_params = local_var_params['request_body']
+        if 'param' in local_var_params:
+            body_params = local_var_params['param']
         # HTTP header `Content-Type`
         header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
             ['application/json'])  # noqa: E501
diff --git a/samples/client/petstore/python-asyncio/petstore_api/api/fake_classname_tags_123_api.py b/samples/client/petstore/python-asyncio/petstore_api/api/fake_classname_tags_123_api.py
index 80e03e6626eedf1b77a70e358d587f328f88b303..dbf6ef3dfb377a8d6e20a63cfe08232a8551431e 100644
--- a/samples/client/petstore/python-asyncio/petstore_api/api/fake_classname_tags_123_api.py
+++ b/samples/client/petstore/python-asyncio/petstore_api/api/fake_classname_tags_123_api.py
@@ -32,39 +32,39 @@ class FakeClassnameTags123Api(object):
             api_client = ApiClient()
         self.api_client = api_client
 
-    def test_classname(self, client, **kwargs):  # noqa: E501
+    def test_classname(self, body, **kwargs):  # noqa: E501
         """To test class name in snake case  # noqa: E501
 
         To test class name in snake case  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_classname(client, async_req=True)
+        >>> thread = api.test_classname(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.test_classname_with_http_info(client, **kwargs)  # noqa: E501
+            return self.test_classname_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.test_classname_with_http_info(client, **kwargs)  # noqa: E501
+            (data) = self.test_classname_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def test_classname_with_http_info(self, client, **kwargs):  # noqa: E501
+    def test_classname_with_http_info(self, body, **kwargs):  # noqa: E501
         """To test class name in snake case  # noqa: E501
 
         To test class name in snake case  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_classname_with_http_info(client, async_req=True)
+        >>> thread = api.test_classname_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
@@ -72,7 +72,7 @@ class FakeClassnameTags123Api(object):
 
         local_var_params = locals()
 
-        all_params = ['client']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -86,10 +86,10 @@ class FakeClassnameTags123Api(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'client' is set
-        if ('client' not in local_var_params or
-                local_var_params['client'] is None):
-            raise ValueError("Missing the required parameter `client` when calling `test_classname`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `test_classname`")  # noqa: E501
 
         collection_formats = {}
 
@@ -103,8 +103,8 @@ class FakeClassnameTags123Api(object):
         local_var_files = {}
 
         body_params = None
-        if 'client' in local_var_params:
-            body_params = local_var_params['client']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Accept`
         header_params['Accept'] = self.api_client.select_header_accept(
             ['application/json'])  # noqa: E501
diff --git a/samples/client/petstore/python-asyncio/petstore_api/api/pet_api.py b/samples/client/petstore/python-asyncio/petstore_api/api/pet_api.py
index cee0e90ab5c118414ad2777d4c3d1bc899357fd3..f29e7239666ad13327d718f54528c27f8320d568 100644
--- a/samples/client/petstore/python-asyncio/petstore_api/api/pet_api.py
+++ b/samples/client/petstore/python-asyncio/petstore_api/api/pet_api.py
@@ -32,37 +32,37 @@ class PetApi(object):
             api_client = ApiClient()
         self.api_client = api_client
 
-    def add_pet(self, pet, **kwargs):  # noqa: E501
+    def add_pet(self, body, **kwargs):  # noqa: E501
         """Add a new pet to the store  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.add_pet(pet, async_req=True)
+        >>> thread = api.add_pet(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Pet pet: Pet object that needs to be added to the store (required)
+        :param Pet body: Pet object that needs to be added to the store (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.add_pet_with_http_info(pet, **kwargs)  # noqa: E501
+            return self.add_pet_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.add_pet_with_http_info(pet, **kwargs)  # noqa: E501
+            (data) = self.add_pet_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def add_pet_with_http_info(self, pet, **kwargs):  # noqa: E501
+    def add_pet_with_http_info(self, body, **kwargs):  # noqa: E501
         """Add a new pet to the store  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.add_pet_with_http_info(pet, async_req=True)
+        >>> thread = api.add_pet_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Pet pet: Pet object that needs to be added to the store (required)
+        :param Pet body: Pet object that needs to be added to the store (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -70,7 +70,7 @@ class PetApi(object):
 
         local_var_params = locals()
 
-        all_params = ['pet']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -84,10 +84,10 @@ class PetApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'pet' is set
-        if ('pet' not in local_var_params or
-                local_var_params['pet'] is None):
-            raise ValueError("Missing the required parameter `pet` when calling `add_pet`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `add_pet`")  # noqa: E501
 
         collection_formats = {}
 
@@ -101,8 +101,8 @@ class PetApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'pet' in local_var_params:
-            body_params = local_var_params['pet']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Content-Type`
         header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
             ['application/json', 'application/xml'])  # noqa: E501
@@ -510,37 +510,37 @@ class PetApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def update_pet(self, pet, **kwargs):  # noqa: E501
+    def update_pet(self, body, **kwargs):  # noqa: E501
         """Update an existing pet  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.update_pet(pet, async_req=True)
+        >>> thread = api.update_pet(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Pet pet: Pet object that needs to be added to the store (required)
+        :param Pet body: Pet object that needs to be added to the store (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.update_pet_with_http_info(pet, **kwargs)  # noqa: E501
+            return self.update_pet_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.update_pet_with_http_info(pet, **kwargs)  # noqa: E501
+            (data) = self.update_pet_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def update_pet_with_http_info(self, pet, **kwargs):  # noqa: E501
+    def update_pet_with_http_info(self, body, **kwargs):  # noqa: E501
         """Update an existing pet  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.update_pet_with_http_info(pet, async_req=True)
+        >>> thread = api.update_pet_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Pet pet: Pet object that needs to be added to the store (required)
+        :param Pet body: Pet object that needs to be added to the store (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -548,7 +548,7 @@ class PetApi(object):
 
         local_var_params = locals()
 
-        all_params = ['pet']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -562,10 +562,10 @@ class PetApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'pet' is set
-        if ('pet' not in local_var_params or
-                local_var_params['pet'] is None):
-            raise ValueError("Missing the required parameter `pet` when calling `update_pet`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `update_pet`")  # noqa: E501
 
         collection_formats = {}
 
@@ -579,8 +579,8 @@ class PetApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'pet' in local_var_params:
-            body_params = local_var_params['pet']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Content-Type`
         header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
             ['application/json', 'application/xml'])  # noqa: E501
diff --git a/samples/client/petstore/python-asyncio/petstore_api/api/store_api.py b/samples/client/petstore/python-asyncio/petstore_api/api/store_api.py
index 8d471fddabf971dce9666b04268b9a8ba8c63103..bd2677ef92bcc7bd0948496fa0c663eb08b18df5 100644
--- a/samples/client/petstore/python-asyncio/petstore_api/api/store_api.py
+++ b/samples/client/petstore/python-asyncio/petstore_api/api/store_api.py
@@ -312,37 +312,37 @@ class StoreApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def place_order(self, order, **kwargs):  # noqa: E501
+    def place_order(self, body, **kwargs):  # noqa: E501
         """Place an order for a pet  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.place_order(order, async_req=True)
+        >>> thread = api.place_order(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Order order: order placed for purchasing the pet (required)
+        :param Order body: order placed for purchasing the pet (required)
         :return: Order
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.place_order_with_http_info(order, **kwargs)  # noqa: E501
+            return self.place_order_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.place_order_with_http_info(order, **kwargs)  # noqa: E501
+            (data) = self.place_order_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def place_order_with_http_info(self, order, **kwargs):  # noqa: E501
+    def place_order_with_http_info(self, body, **kwargs):  # noqa: E501
         """Place an order for a pet  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.place_order_with_http_info(order, async_req=True)
+        >>> thread = api.place_order_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Order order: order placed for purchasing the pet (required)
+        :param Order body: order placed for purchasing the pet (required)
         :return: Order
                  If the method is called asynchronously,
                  returns the request thread.
@@ -350,7 +350,7 @@ class StoreApi(object):
 
         local_var_params = locals()
 
-        all_params = ['order']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -364,10 +364,10 @@ class StoreApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'order' is set
-        if ('order' not in local_var_params or
-                local_var_params['order'] is None):
-            raise ValueError("Missing the required parameter `order` when calling `place_order`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `place_order`")  # noqa: E501
 
         collection_formats = {}
 
@@ -381,8 +381,8 @@ class StoreApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'order' in local_var_params:
-            body_params = local_var_params['order']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Accept`
         header_params['Accept'] = self.api_client.select_header_accept(
             ['application/xml', 'application/json'])  # noqa: E501
diff --git a/samples/client/petstore/python-asyncio/petstore_api/api/user_api.py b/samples/client/petstore/python-asyncio/petstore_api/api/user_api.py
index e86ac277e9786cf074c163366e7db0bfab230ae0..c27299309a6df353927eecae4e652af084f12266 100644
--- a/samples/client/petstore/python-asyncio/petstore_api/api/user_api.py
+++ b/samples/client/petstore/python-asyncio/petstore_api/api/user_api.py
@@ -32,39 +32,39 @@ class UserApi(object):
             api_client = ApiClient()
         self.api_client = api_client
 
-    def create_user(self, user, **kwargs):  # noqa: E501
+    def create_user(self, body, **kwargs):  # noqa: E501
         """Create user  # noqa: E501
 
         This can only be done by the logged in user.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_user(user, async_req=True)
+        >>> thread = api.create_user(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param User user: Created user object (required)
+        :param User body: Created user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.create_user_with_http_info(user, **kwargs)  # noqa: E501
+            return self.create_user_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.create_user_with_http_info(user, **kwargs)  # noqa: E501
+            (data) = self.create_user_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def create_user_with_http_info(self, user, **kwargs):  # noqa: E501
+    def create_user_with_http_info(self, body, **kwargs):  # noqa: E501
         """Create user  # noqa: E501
 
         This can only be done by the logged in user.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_user_with_http_info(user, async_req=True)
+        >>> thread = api.create_user_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param User user: Created user object (required)
+        :param User body: Created user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -72,7 +72,7 @@ class UserApi(object):
 
         local_var_params = locals()
 
-        all_params = ['user']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -86,10 +86,10 @@ class UserApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'user' is set
-        if ('user' not in local_var_params or
-                local_var_params['user'] is None):
-            raise ValueError("Missing the required parameter `user` when calling `create_user`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `create_user`")  # noqa: E501
 
         collection_formats = {}
 
@@ -103,8 +103,8 @@ class UserApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'user' in local_var_params:
-            body_params = local_var_params['user']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # Authentication setting
         auth_settings = []  # noqa: E501
 
@@ -124,37 +124,37 @@ class UserApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def create_users_with_array_input(self, user, **kwargs):  # noqa: E501
+    def create_users_with_array_input(self, body, **kwargs):  # noqa: E501
         """Creates list of users with given input array  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_users_with_array_input(user, async_req=True)
+        >>> thread = api.create_users_with_array_input(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param list[User] user: List of user object (required)
+        :param list[User] body: List of user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.create_users_with_array_input_with_http_info(user, **kwargs)  # noqa: E501
+            return self.create_users_with_array_input_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.create_users_with_array_input_with_http_info(user, **kwargs)  # noqa: E501
+            (data) = self.create_users_with_array_input_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def create_users_with_array_input_with_http_info(self, user, **kwargs):  # noqa: E501
+    def create_users_with_array_input_with_http_info(self, body, **kwargs):  # noqa: E501
         """Creates list of users with given input array  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_users_with_array_input_with_http_info(user, async_req=True)
+        >>> thread = api.create_users_with_array_input_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param list[User] user: List of user object (required)
+        :param list[User] body: List of user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -162,7 +162,7 @@ class UserApi(object):
 
         local_var_params = locals()
 
-        all_params = ['user']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -176,10 +176,10 @@ class UserApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'user' is set
-        if ('user' not in local_var_params or
-                local_var_params['user'] is None):
-            raise ValueError("Missing the required parameter `user` when calling `create_users_with_array_input`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `create_users_with_array_input`")  # noqa: E501
 
         collection_formats = {}
 
@@ -193,8 +193,8 @@ class UserApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'user' in local_var_params:
-            body_params = local_var_params['user']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # Authentication setting
         auth_settings = []  # noqa: E501
 
@@ -214,37 +214,37 @@ class UserApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def create_users_with_list_input(self, user, **kwargs):  # noqa: E501
+    def create_users_with_list_input(self, body, **kwargs):  # noqa: E501
         """Creates list of users with given input array  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_users_with_list_input(user, async_req=True)
+        >>> thread = api.create_users_with_list_input(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param list[User] user: List of user object (required)
+        :param list[User] body: List of user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.create_users_with_list_input_with_http_info(user, **kwargs)  # noqa: E501
+            return self.create_users_with_list_input_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.create_users_with_list_input_with_http_info(user, **kwargs)  # noqa: E501
+            (data) = self.create_users_with_list_input_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def create_users_with_list_input_with_http_info(self, user, **kwargs):  # noqa: E501
+    def create_users_with_list_input_with_http_info(self, body, **kwargs):  # noqa: E501
         """Creates list of users with given input array  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_users_with_list_input_with_http_info(user, async_req=True)
+        >>> thread = api.create_users_with_list_input_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param list[User] user: List of user object (required)
+        :param list[User] body: List of user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -252,7 +252,7 @@ class UserApi(object):
 
         local_var_params = locals()
 
-        all_params = ['user']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -266,10 +266,10 @@ class UserApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'user' is set
-        if ('user' not in local_var_params or
-                local_var_params['user'] is None):
-            raise ValueError("Missing the required parameter `user` when calling `create_users_with_list_input`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `create_users_with_list_input`")  # noqa: E501
 
         collection_formats = {}
 
@@ -283,8 +283,8 @@ class UserApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'user' in local_var_params:
-            body_params = local_var_params['user']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # Authentication setting
         auth_settings = []  # noqa: E501
 
@@ -674,41 +674,41 @@ class UserApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def update_user(self, username, user, **kwargs):  # noqa: E501
+    def update_user(self, username, body, **kwargs):  # noqa: E501
         """Updated user  # noqa: E501
 
         This can only be done by the logged in user.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.update_user(username, user, async_req=True)
+        >>> thread = api.update_user(username, body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
         :param str username: name that need to be deleted (required)
-        :param User user: Updated user object (required)
+        :param User body: Updated user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.update_user_with_http_info(username, user, **kwargs)  # noqa: E501
+            return self.update_user_with_http_info(username, body, **kwargs)  # noqa: E501
         else:
-            (data) = self.update_user_with_http_info(username, user, **kwargs)  # noqa: E501
+            (data) = self.update_user_with_http_info(username, body, **kwargs)  # noqa: E501
             return data
 
-    def update_user_with_http_info(self, username, user, **kwargs):  # noqa: E501
+    def update_user_with_http_info(self, username, body, **kwargs):  # noqa: E501
         """Updated user  # noqa: E501
 
         This can only be done by the logged in user.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.update_user_with_http_info(username, user, async_req=True)
+        >>> thread = api.update_user_with_http_info(username, body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
         :param str username: name that need to be deleted (required)
-        :param User user: Updated user object (required)
+        :param User body: Updated user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -716,7 +716,7 @@ class UserApi(object):
 
         local_var_params = locals()
 
-        all_params = ['username', 'user']  # noqa: E501
+        all_params = ['username', 'body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -734,10 +734,10 @@ class UserApi(object):
         if ('username' not in local_var_params or
                 local_var_params['username'] is None):
             raise ValueError("Missing the required parameter `username` when calling `update_user`")  # noqa: E501
-        # verify the required parameter 'user' is set
-        if ('user' not in local_var_params or
-                local_var_params['user'] is None):
-            raise ValueError("Missing the required parameter `user` when calling `update_user`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `update_user`")  # noqa: E501
 
         collection_formats = {}
 
@@ -753,8 +753,8 @@ class UserApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'user' in local_var_params:
-            body_params = local_var_params['user']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # Authentication setting
         auth_settings = []  # noqa: E501
 
diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/__init__.py b/samples/client/petstore/python-asyncio/petstore_api/models/__init__.py
index 393dec06333f15b66444790883caabf05c885df1..3a39467a63acff5d2207056eaff644a19cd87207 100644
--- a/samples/client/petstore/python-asyncio/petstore_api/models/__init__.py
+++ b/samples/client/petstore/python-asyncio/petstore_api/models/__init__.py
@@ -47,4 +47,7 @@ from petstore_api.models.pet import Pet
 from petstore_api.models.read_only_first import ReadOnlyFirst
 from petstore_api.models.special_model_name import SpecialModelName
 from petstore_api.models.tag import Tag
+from petstore_api.models.type_holder_default import TypeHolderDefault
+from petstore_api.models.type_holder_example import TypeHolderExample
 from petstore_api.models.user import User
+from petstore_api.models.xml_item import XmlItem
diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/animal.py b/samples/client/petstore/python-asyncio/petstore_api/models/animal.py
index 5acccf50f7abf445ac27d284d99409318f9e712e..abd6f705e5e84c755f64291e4d19b80d0dc64c5c 100644
--- a/samples/client/petstore/python-asyncio/petstore_api/models/animal.py
+++ b/samples/client/petstore/python-asyncio/petstore_api/models/animal.py
@@ -50,7 +50,7 @@ class Animal(object):
 
         self._class_name = None
         self._color = None
-        self.discriminator = 'className'
+        self.discriminator = 'class_name'
 
         self.class_name = class_name
         if color is not None:
@@ -102,7 +102,8 @@ class Animal(object):
 
     def get_real_child_model(self, data):
         """Returns the real base class specified by the discriminator"""
-        discriminator_value = data[self.discriminator]
+        discriminator_key = self.attribute_map[self.discriminator]
+        discriminator_value = data[discriminator_key]
         return self.discriminator_value_class_map.get(discriminator_value)
 
     def to_dict(self):
diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/pet.py b/samples/client/petstore/python-asyncio/petstore_api/models/pet.py
index d3c412f4a82b0bf40c59f62caff8a15d62bbda30..3183f60c797107523971b378c5e48dec07045a15 100644
--- a/samples/client/petstore/python-asyncio/petstore_api/models/pet.py
+++ b/samples/client/petstore/python-asyncio/petstore_api/models/pet.py
@@ -48,7 +48,7 @@ class Pet(object):
         'status': 'status'
     }
 
-    def __init__(self, id=None, category=None, name=None, photo_urls=None, tags=None, status=None):  # noqa: E501
+    def __init__(self, id=None, category=None, name='doggie', photo_urls=None, tags=None, status=None):  # noqa: E501
         """Pet - a model defined in OpenAPI"""  # noqa: E501
 
         self._id = None
diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/type_holder_default.py b/samples/client/petstore/python-asyncio/petstore_api/models/type_holder_default.py
new file mode 100644
index 0000000000000000000000000000000000000000..a0566f5d5fe69c76318f872dab13f079ac44f031
--- /dev/null
+++ b/samples/client/petstore/python-asyncio/petstore_api/models/type_holder_default.py
@@ -0,0 +1,221 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+import pprint
+import re  # noqa: F401
+
+import six
+
+
+class TypeHolderDefault(object):
+    """NOTE: This class is auto generated by OpenAPI Generator.
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    """
+    Attributes:
+      openapi_types (dict): The key is attribute name
+                            and the value is attribute type.
+      attribute_map (dict): The key is attribute name
+                            and the value is json key in definition.
+    """
+    openapi_types = {
+        'string_item': 'str',
+        'number_item': 'float',
+        'integer_item': 'int',
+        'bool_item': 'bool',
+        'array_item': 'list[int]'
+    }
+
+    attribute_map = {
+        'string_item': 'string_item',
+        'number_item': 'number_item',
+        'integer_item': 'integer_item',
+        'bool_item': 'bool_item',
+        'array_item': 'array_item'
+    }
+
+    def __init__(self, string_item='what', number_item=None, integer_item=None, bool_item=True, array_item=None):  # noqa: E501
+        """TypeHolderDefault - a model defined in OpenAPI"""  # noqa: E501
+
+        self._string_item = None
+        self._number_item = None
+        self._integer_item = None
+        self._bool_item = None
+        self._array_item = None
+        self.discriminator = None
+
+        self.string_item = string_item
+        self.number_item = number_item
+        self.integer_item = integer_item
+        self.bool_item = bool_item
+        self.array_item = array_item
+
+    @property
+    def string_item(self):
+        """Gets the string_item of this TypeHolderDefault.  # noqa: E501
+
+
+        :return: The string_item of this TypeHolderDefault.  # noqa: E501
+        :rtype: str
+        """
+        return self._string_item
+
+    @string_item.setter
+    def string_item(self, string_item):
+        """Sets the string_item of this TypeHolderDefault.
+
+
+        :param string_item: The string_item of this TypeHolderDefault.  # noqa: E501
+        :type: str
+        """
+        if string_item is None:
+            raise ValueError("Invalid value for `string_item`, must not be `None`")  # noqa: E501
+
+        self._string_item = string_item
+
+    @property
+    def number_item(self):
+        """Gets the number_item of this TypeHolderDefault.  # noqa: E501
+
+
+        :return: The number_item of this TypeHolderDefault.  # noqa: E501
+        :rtype: float
+        """
+        return self._number_item
+
+    @number_item.setter
+    def number_item(self, number_item):
+        """Sets the number_item of this TypeHolderDefault.
+
+
+        :param number_item: The number_item of this TypeHolderDefault.  # noqa: E501
+        :type: float
+        """
+        if number_item is None:
+            raise ValueError("Invalid value for `number_item`, must not be `None`")  # noqa: E501
+
+        self._number_item = number_item
+
+    @property
+    def integer_item(self):
+        """Gets the integer_item of this TypeHolderDefault.  # noqa: E501
+
+
+        :return: The integer_item of this TypeHolderDefault.  # noqa: E501
+        :rtype: int
+        """
+        return self._integer_item
+
+    @integer_item.setter
+    def integer_item(self, integer_item):
+        """Sets the integer_item of this TypeHolderDefault.
+
+
+        :param integer_item: The integer_item of this TypeHolderDefault.  # noqa: E501
+        :type: int
+        """
+        if integer_item is None:
+            raise ValueError("Invalid value for `integer_item`, must not be `None`")  # noqa: E501
+
+        self._integer_item = integer_item
+
+    @property
+    def bool_item(self):
+        """Gets the bool_item of this TypeHolderDefault.  # noqa: E501
+
+
+        :return: The bool_item of this TypeHolderDefault.  # noqa: E501
+        :rtype: bool
+        """
+        return self._bool_item
+
+    @bool_item.setter
+    def bool_item(self, bool_item):
+        """Sets the bool_item of this TypeHolderDefault.
+
+
+        :param bool_item: The bool_item of this TypeHolderDefault.  # noqa: E501
+        :type: bool
+        """
+        if bool_item is None:
+            raise ValueError("Invalid value for `bool_item`, must not be `None`")  # noqa: E501
+
+        self._bool_item = bool_item
+
+    @property
+    def array_item(self):
+        """Gets the array_item of this TypeHolderDefault.  # noqa: E501
+
+
+        :return: The array_item of this TypeHolderDefault.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._array_item
+
+    @array_item.setter
+    def array_item(self, array_item):
+        """Sets the array_item of this TypeHolderDefault.
+
+
+        :param array_item: The array_item of this TypeHolderDefault.  # noqa: E501
+        :type: list[int]
+        """
+        if array_item is None:
+            raise ValueError("Invalid value for `array_item`, must not be `None`")  # noqa: E501
+
+        self._array_item = array_item
+
+    def to_dict(self):
+        """Returns the model properties as a dict"""
+        result = {}
+
+        for attr, _ in six.iteritems(self.openapi_types):
+            value = getattr(self, attr)
+            if isinstance(value, list):
+                result[attr] = list(map(
+                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+                    value
+                ))
+            elif hasattr(value, "to_dict"):
+                result[attr] = value.to_dict()
+            elif isinstance(value, dict):
+                result[attr] = dict(map(
+                    lambda item: (item[0], item[1].to_dict())
+                    if hasattr(item[1], "to_dict") else item,
+                    value.items()
+                ))
+            else:
+                result[attr] = value
+
+        return result
+
+    def to_str(self):
+        """Returns the string representation of the model"""
+        return pprint.pformat(self.to_dict())
+
+    def __repr__(self):
+        """For `print` and `pprint`"""
+        return self.to_str()
+
+    def __eq__(self, other):
+        """Returns true if both objects are equal"""
+        if not isinstance(other, TypeHolderDefault):
+            return False
+
+        return self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        """Returns true if both objects are not equal"""
+        return not self == other
diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/type_holder_example.py b/samples/client/petstore/python-asyncio/petstore_api/models/type_holder_example.py
new file mode 100644
index 0000000000000000000000000000000000000000..573354ab4d6e7d462c5f110077099774d1087646
--- /dev/null
+++ b/samples/client/petstore/python-asyncio/petstore_api/models/type_holder_example.py
@@ -0,0 +1,221 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+import pprint
+import re  # noqa: F401
+
+import six
+
+
+class TypeHolderExample(object):
+    """NOTE: This class is auto generated by OpenAPI Generator.
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    """
+    Attributes:
+      openapi_types (dict): The key is attribute name
+                            and the value is attribute type.
+      attribute_map (dict): The key is attribute name
+                            and the value is json key in definition.
+    """
+    openapi_types = {
+        'string_item': 'str',
+        'number_item': 'float',
+        'integer_item': 'int',
+        'bool_item': 'bool',
+        'array_item': 'list[int]'
+    }
+
+    attribute_map = {
+        'string_item': 'string_item',
+        'number_item': 'number_item',
+        'integer_item': 'integer_item',
+        'bool_item': 'bool_item',
+        'array_item': 'array_item'
+    }
+
+    def __init__(self, string_item='what', number_item=1.234, integer_item=-2, bool_item=True, array_item=[0, 1, 2, 3]):  # noqa: E501
+        """TypeHolderExample - a model defined in OpenAPI"""  # noqa: E501
+
+        self._string_item = None
+        self._number_item = None
+        self._integer_item = None
+        self._bool_item = None
+        self._array_item = None
+        self.discriminator = None
+
+        self.string_item = string_item
+        self.number_item = number_item
+        self.integer_item = integer_item
+        self.bool_item = bool_item
+        self.array_item = array_item
+
+    @property
+    def string_item(self):
+        """Gets the string_item of this TypeHolderExample.  # noqa: E501
+
+
+        :return: The string_item of this TypeHolderExample.  # noqa: E501
+        :rtype: str
+        """
+        return self._string_item
+
+    @string_item.setter
+    def string_item(self, string_item):
+        """Sets the string_item of this TypeHolderExample.
+
+
+        :param string_item: The string_item of this TypeHolderExample.  # noqa: E501
+        :type: str
+        """
+        if string_item is None:
+            raise ValueError("Invalid value for `string_item`, must not be `None`")  # noqa: E501
+
+        self._string_item = string_item
+
+    @property
+    def number_item(self):
+        """Gets the number_item of this TypeHolderExample.  # noqa: E501
+
+
+        :return: The number_item of this TypeHolderExample.  # noqa: E501
+        :rtype: float
+        """
+        return self._number_item
+
+    @number_item.setter
+    def number_item(self, number_item):
+        """Sets the number_item of this TypeHolderExample.
+
+
+        :param number_item: The number_item of this TypeHolderExample.  # noqa: E501
+        :type: float
+        """
+        if number_item is None:
+            raise ValueError("Invalid value for `number_item`, must not be `None`")  # noqa: E501
+
+        self._number_item = number_item
+
+    @property
+    def integer_item(self):
+        """Gets the integer_item of this TypeHolderExample.  # noqa: E501
+
+
+        :return: The integer_item of this TypeHolderExample.  # noqa: E501
+        :rtype: int
+        """
+        return self._integer_item
+
+    @integer_item.setter
+    def integer_item(self, integer_item):
+        """Sets the integer_item of this TypeHolderExample.
+
+
+        :param integer_item: The integer_item of this TypeHolderExample.  # noqa: E501
+        :type: int
+        """
+        if integer_item is None:
+            raise ValueError("Invalid value for `integer_item`, must not be `None`")  # noqa: E501
+
+        self._integer_item = integer_item
+
+    @property
+    def bool_item(self):
+        """Gets the bool_item of this TypeHolderExample.  # noqa: E501
+
+
+        :return: The bool_item of this TypeHolderExample.  # noqa: E501
+        :rtype: bool
+        """
+        return self._bool_item
+
+    @bool_item.setter
+    def bool_item(self, bool_item):
+        """Sets the bool_item of this TypeHolderExample.
+
+
+        :param bool_item: The bool_item of this TypeHolderExample.  # noqa: E501
+        :type: bool
+        """
+        if bool_item is None:
+            raise ValueError("Invalid value for `bool_item`, must not be `None`")  # noqa: E501
+
+        self._bool_item = bool_item
+
+    @property
+    def array_item(self):
+        """Gets the array_item of this TypeHolderExample.  # noqa: E501
+
+
+        :return: The array_item of this TypeHolderExample.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._array_item
+
+    @array_item.setter
+    def array_item(self, array_item):
+        """Sets the array_item of this TypeHolderExample.
+
+
+        :param array_item: The array_item of this TypeHolderExample.  # noqa: E501
+        :type: list[int]
+        """
+        if array_item is None:
+            raise ValueError("Invalid value for `array_item`, must not be `None`")  # noqa: E501
+
+        self._array_item = array_item
+
+    def to_dict(self):
+        """Returns the model properties as a dict"""
+        result = {}
+
+        for attr, _ in six.iteritems(self.openapi_types):
+            value = getattr(self, attr)
+            if isinstance(value, list):
+                result[attr] = list(map(
+                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+                    value
+                ))
+            elif hasattr(value, "to_dict"):
+                result[attr] = value.to_dict()
+            elif isinstance(value, dict):
+                result[attr] = dict(map(
+                    lambda item: (item[0], item[1].to_dict())
+                    if hasattr(item[1], "to_dict") else item,
+                    value.items()
+                ))
+            else:
+                result[attr] = value
+
+        return result
+
+    def to_str(self):
+        """Returns the string representation of the model"""
+        return pprint.pformat(self.to_dict())
+
+    def __repr__(self):
+        """For `print` and `pprint`"""
+        return self.to_str()
+
+    def __eq__(self, other):
+        """Returns true if both objects are equal"""
+        if not isinstance(other, TypeHolderExample):
+            return False
+
+        return self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        """Returns true if both objects are not equal"""
+        return not self == other
diff --git a/samples/client/petstore/python-asyncio/petstore_api/models/xml_item.py b/samples/client/petstore/python-asyncio/petstore_api/models/xml_item.py
new file mode 100644
index 0000000000000000000000000000000000000000..28e6ff3767704f0def630c4fd989336834328a2c
--- /dev/null
+++ b/samples/client/petstore/python-asyncio/petstore_api/models/xml_item.py
@@ -0,0 +1,840 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+import pprint
+import re  # noqa: F401
+
+import six
+
+
+class XmlItem(object):
+    """NOTE: This class is auto generated by OpenAPI Generator.
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    """
+    Attributes:
+      openapi_types (dict): The key is attribute name
+                            and the value is attribute type.
+      attribute_map (dict): The key is attribute name
+                            and the value is json key in definition.
+    """
+    openapi_types = {
+        'attribute_string': 'str',
+        'attribute_number': 'float',
+        'attribute_integer': 'int',
+        'attribute_boolean': 'bool',
+        'wrapped_array': 'list[int]',
+        'name_string': 'str',
+        'name_number': 'float',
+        'name_integer': 'int',
+        'name_boolean': 'bool',
+        'name_array': 'list[int]',
+        'name_wrapped_array': 'list[int]',
+        'prefix_string': 'str',
+        'prefix_number': 'float',
+        'prefix_integer': 'int',
+        'prefix_boolean': 'bool',
+        'prefix_array': 'list[int]',
+        'prefix_wrapped_array': 'list[int]',
+        'namespace_string': 'str',
+        'namespace_number': 'float',
+        'namespace_integer': 'int',
+        'namespace_boolean': 'bool',
+        'namespace_array': 'list[int]',
+        'namespace_wrapped_array': 'list[int]',
+        'prefix_ns_string': 'str',
+        'prefix_ns_number': 'float',
+        'prefix_ns_integer': 'int',
+        'prefix_ns_boolean': 'bool',
+        'prefix_ns_array': 'list[int]',
+        'prefix_ns_wrapped_array': 'list[int]'
+    }
+
+    attribute_map = {
+        'attribute_string': 'attribute_string',
+        'attribute_number': 'attribute_number',
+        'attribute_integer': 'attribute_integer',
+        'attribute_boolean': 'attribute_boolean',
+        'wrapped_array': 'wrapped_array',
+        'name_string': 'name_string',
+        'name_number': 'name_number',
+        'name_integer': 'name_integer',
+        'name_boolean': 'name_boolean',
+        'name_array': 'name_array',
+        'name_wrapped_array': 'name_wrapped_array',
+        'prefix_string': 'prefix_string',
+        'prefix_number': 'prefix_number',
+        'prefix_integer': 'prefix_integer',
+        'prefix_boolean': 'prefix_boolean',
+        'prefix_array': 'prefix_array',
+        'prefix_wrapped_array': 'prefix_wrapped_array',
+        'namespace_string': 'namespace_string',
+        'namespace_number': 'namespace_number',
+        'namespace_integer': 'namespace_integer',
+        'namespace_boolean': 'namespace_boolean',
+        'namespace_array': 'namespace_array',
+        'namespace_wrapped_array': 'namespace_wrapped_array',
+        'prefix_ns_string': 'prefix_ns_string',
+        'prefix_ns_number': 'prefix_ns_number',
+        'prefix_ns_integer': 'prefix_ns_integer',
+        'prefix_ns_boolean': 'prefix_ns_boolean',
+        'prefix_ns_array': 'prefix_ns_array',
+        'prefix_ns_wrapped_array': 'prefix_ns_wrapped_array'
+    }
+
+    def __init__(self, attribute_string='string', attribute_number=1.234, attribute_integer=-2, attribute_boolean=True, wrapped_array=None, name_string='string', name_number=1.234, name_integer=-2, name_boolean=True, name_array=None, name_wrapped_array=None, prefix_string='string', prefix_number=1.234, prefix_integer=-2, prefix_boolean=True, prefix_array=None, prefix_wrapped_array=None, namespace_string='string', namespace_number=1.234, namespace_integer=-2, namespace_boolean=True, namespace_array=None, namespace_wrapped_array=None, prefix_ns_string='string', prefix_ns_number=1.234, prefix_ns_integer=-2, prefix_ns_boolean=True, prefix_ns_array=None, prefix_ns_wrapped_array=None):  # noqa: E501
+        """XmlItem - a model defined in OpenAPI"""  # noqa: E501
+
+        self._attribute_string = None
+        self._attribute_number = None
+        self._attribute_integer = None
+        self._attribute_boolean = None
+        self._wrapped_array = None
+        self._name_string = None
+        self._name_number = None
+        self._name_integer = None
+        self._name_boolean = None
+        self._name_array = None
+        self._name_wrapped_array = None
+        self._prefix_string = None
+        self._prefix_number = None
+        self._prefix_integer = None
+        self._prefix_boolean = None
+        self._prefix_array = None
+        self._prefix_wrapped_array = None
+        self._namespace_string = None
+        self._namespace_number = None
+        self._namespace_integer = None
+        self._namespace_boolean = None
+        self._namespace_array = None
+        self._namespace_wrapped_array = None
+        self._prefix_ns_string = None
+        self._prefix_ns_number = None
+        self._prefix_ns_integer = None
+        self._prefix_ns_boolean = None
+        self._prefix_ns_array = None
+        self._prefix_ns_wrapped_array = None
+        self.discriminator = None
+
+        if attribute_string is not None:
+            self.attribute_string = attribute_string
+        if attribute_number is not None:
+            self.attribute_number = attribute_number
+        if attribute_integer is not None:
+            self.attribute_integer = attribute_integer
+        if attribute_boolean is not None:
+            self.attribute_boolean = attribute_boolean
+        if wrapped_array is not None:
+            self.wrapped_array = wrapped_array
+        if name_string is not None:
+            self.name_string = name_string
+        if name_number is not None:
+            self.name_number = name_number
+        if name_integer is not None:
+            self.name_integer = name_integer
+        if name_boolean is not None:
+            self.name_boolean = name_boolean
+        if name_array is not None:
+            self.name_array = name_array
+        if name_wrapped_array is not None:
+            self.name_wrapped_array = name_wrapped_array
+        if prefix_string is not None:
+            self.prefix_string = prefix_string
+        if prefix_number is not None:
+            self.prefix_number = prefix_number
+        if prefix_integer is not None:
+            self.prefix_integer = prefix_integer
+        if prefix_boolean is not None:
+            self.prefix_boolean = prefix_boolean
+        if prefix_array is not None:
+            self.prefix_array = prefix_array
+        if prefix_wrapped_array is not None:
+            self.prefix_wrapped_array = prefix_wrapped_array
+        if namespace_string is not None:
+            self.namespace_string = namespace_string
+        if namespace_number is not None:
+            self.namespace_number = namespace_number
+        if namespace_integer is not None:
+            self.namespace_integer = namespace_integer
+        if namespace_boolean is not None:
+            self.namespace_boolean = namespace_boolean
+        if namespace_array is not None:
+            self.namespace_array = namespace_array
+        if namespace_wrapped_array is not None:
+            self.namespace_wrapped_array = namespace_wrapped_array
+        if prefix_ns_string is not None:
+            self.prefix_ns_string = prefix_ns_string
+        if prefix_ns_number is not None:
+            self.prefix_ns_number = prefix_ns_number
+        if prefix_ns_integer is not None:
+            self.prefix_ns_integer = prefix_ns_integer
+        if prefix_ns_boolean is not None:
+            self.prefix_ns_boolean = prefix_ns_boolean
+        if prefix_ns_array is not None:
+            self.prefix_ns_array = prefix_ns_array
+        if prefix_ns_wrapped_array is not None:
+            self.prefix_ns_wrapped_array = prefix_ns_wrapped_array
+
+    @property
+    def attribute_string(self):
+        """Gets the attribute_string of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._attribute_string
+
+    @attribute_string.setter
+    def attribute_string(self, attribute_string):
+        """Sets the attribute_string of this XmlItem.
+
+
+        :param attribute_string: The attribute_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._attribute_string = attribute_string
+
+    @property
+    def attribute_number(self):
+        """Gets the attribute_number of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._attribute_number
+
+    @attribute_number.setter
+    def attribute_number(self, attribute_number):
+        """Sets the attribute_number of this XmlItem.
+
+
+        :param attribute_number: The attribute_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._attribute_number = attribute_number
+
+    @property
+    def attribute_integer(self):
+        """Gets the attribute_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._attribute_integer
+
+    @attribute_integer.setter
+    def attribute_integer(self, attribute_integer):
+        """Sets the attribute_integer of this XmlItem.
+
+
+        :param attribute_integer: The attribute_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._attribute_integer = attribute_integer
+
+    @property
+    def attribute_boolean(self):
+        """Gets the attribute_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._attribute_boolean
+
+    @attribute_boolean.setter
+    def attribute_boolean(self, attribute_boolean):
+        """Sets the attribute_boolean of this XmlItem.
+
+
+        :param attribute_boolean: The attribute_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._attribute_boolean = attribute_boolean
+
+    @property
+    def wrapped_array(self):
+        """Gets the wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._wrapped_array
+
+    @wrapped_array.setter
+    def wrapped_array(self, wrapped_array):
+        """Sets the wrapped_array of this XmlItem.
+
+
+        :param wrapped_array: The wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._wrapped_array = wrapped_array
+
+    @property
+    def name_string(self):
+        """Gets the name_string of this XmlItem.  # noqa: E501
+
+
+        :return: The name_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._name_string
+
+    @name_string.setter
+    def name_string(self, name_string):
+        """Sets the name_string of this XmlItem.
+
+
+        :param name_string: The name_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._name_string = name_string
+
+    @property
+    def name_number(self):
+        """Gets the name_number of this XmlItem.  # noqa: E501
+
+
+        :return: The name_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._name_number
+
+    @name_number.setter
+    def name_number(self, name_number):
+        """Sets the name_number of this XmlItem.
+
+
+        :param name_number: The name_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._name_number = name_number
+
+    @property
+    def name_integer(self):
+        """Gets the name_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The name_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._name_integer
+
+    @name_integer.setter
+    def name_integer(self, name_integer):
+        """Sets the name_integer of this XmlItem.
+
+
+        :param name_integer: The name_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._name_integer = name_integer
+
+    @property
+    def name_boolean(self):
+        """Gets the name_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The name_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._name_boolean
+
+    @name_boolean.setter
+    def name_boolean(self, name_boolean):
+        """Sets the name_boolean of this XmlItem.
+
+
+        :param name_boolean: The name_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._name_boolean = name_boolean
+
+    @property
+    def name_array(self):
+        """Gets the name_array of this XmlItem.  # noqa: E501
+
+
+        :return: The name_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._name_array
+
+    @name_array.setter
+    def name_array(self, name_array):
+        """Sets the name_array of this XmlItem.
+
+
+        :param name_array: The name_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._name_array = name_array
+
+    @property
+    def name_wrapped_array(self):
+        """Gets the name_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The name_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._name_wrapped_array
+
+    @name_wrapped_array.setter
+    def name_wrapped_array(self, name_wrapped_array):
+        """Sets the name_wrapped_array of this XmlItem.
+
+
+        :param name_wrapped_array: The name_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._name_wrapped_array = name_wrapped_array
+
+    @property
+    def prefix_string(self):
+        """Gets the prefix_string of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._prefix_string
+
+    @prefix_string.setter
+    def prefix_string(self, prefix_string):
+        """Sets the prefix_string of this XmlItem.
+
+
+        :param prefix_string: The prefix_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._prefix_string = prefix_string
+
+    @property
+    def prefix_number(self):
+        """Gets the prefix_number of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._prefix_number
+
+    @prefix_number.setter
+    def prefix_number(self, prefix_number):
+        """Sets the prefix_number of this XmlItem.
+
+
+        :param prefix_number: The prefix_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._prefix_number = prefix_number
+
+    @property
+    def prefix_integer(self):
+        """Gets the prefix_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._prefix_integer
+
+    @prefix_integer.setter
+    def prefix_integer(self, prefix_integer):
+        """Sets the prefix_integer of this XmlItem.
+
+
+        :param prefix_integer: The prefix_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._prefix_integer = prefix_integer
+
+    @property
+    def prefix_boolean(self):
+        """Gets the prefix_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._prefix_boolean
+
+    @prefix_boolean.setter
+    def prefix_boolean(self, prefix_boolean):
+        """Sets the prefix_boolean of this XmlItem.
+
+
+        :param prefix_boolean: The prefix_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._prefix_boolean = prefix_boolean
+
+    @property
+    def prefix_array(self):
+        """Gets the prefix_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_array
+
+    @prefix_array.setter
+    def prefix_array(self, prefix_array):
+        """Sets the prefix_array of this XmlItem.
+
+
+        :param prefix_array: The prefix_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_array = prefix_array
+
+    @property
+    def prefix_wrapped_array(self):
+        """Gets the prefix_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_wrapped_array
+
+    @prefix_wrapped_array.setter
+    def prefix_wrapped_array(self, prefix_wrapped_array):
+        """Sets the prefix_wrapped_array of this XmlItem.
+
+
+        :param prefix_wrapped_array: The prefix_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_wrapped_array = prefix_wrapped_array
+
+    @property
+    def namespace_string(self):
+        """Gets the namespace_string of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._namespace_string
+
+    @namespace_string.setter
+    def namespace_string(self, namespace_string):
+        """Sets the namespace_string of this XmlItem.
+
+
+        :param namespace_string: The namespace_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._namespace_string = namespace_string
+
+    @property
+    def namespace_number(self):
+        """Gets the namespace_number of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._namespace_number
+
+    @namespace_number.setter
+    def namespace_number(self, namespace_number):
+        """Sets the namespace_number of this XmlItem.
+
+
+        :param namespace_number: The namespace_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._namespace_number = namespace_number
+
+    @property
+    def namespace_integer(self):
+        """Gets the namespace_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._namespace_integer
+
+    @namespace_integer.setter
+    def namespace_integer(self, namespace_integer):
+        """Sets the namespace_integer of this XmlItem.
+
+
+        :param namespace_integer: The namespace_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._namespace_integer = namespace_integer
+
+    @property
+    def namespace_boolean(self):
+        """Gets the namespace_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._namespace_boolean
+
+    @namespace_boolean.setter
+    def namespace_boolean(self, namespace_boolean):
+        """Sets the namespace_boolean of this XmlItem.
+
+
+        :param namespace_boolean: The namespace_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._namespace_boolean = namespace_boolean
+
+    @property
+    def namespace_array(self):
+        """Gets the namespace_array of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._namespace_array
+
+    @namespace_array.setter
+    def namespace_array(self, namespace_array):
+        """Sets the namespace_array of this XmlItem.
+
+
+        :param namespace_array: The namespace_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._namespace_array = namespace_array
+
+    @property
+    def namespace_wrapped_array(self):
+        """Gets the namespace_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._namespace_wrapped_array
+
+    @namespace_wrapped_array.setter
+    def namespace_wrapped_array(self, namespace_wrapped_array):
+        """Sets the namespace_wrapped_array of this XmlItem.
+
+
+        :param namespace_wrapped_array: The namespace_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._namespace_wrapped_array = namespace_wrapped_array
+
+    @property
+    def prefix_ns_string(self):
+        """Gets the prefix_ns_string of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._prefix_ns_string
+
+    @prefix_ns_string.setter
+    def prefix_ns_string(self, prefix_ns_string):
+        """Sets the prefix_ns_string of this XmlItem.
+
+
+        :param prefix_ns_string: The prefix_ns_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._prefix_ns_string = prefix_ns_string
+
+    @property
+    def prefix_ns_number(self):
+        """Gets the prefix_ns_number of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._prefix_ns_number
+
+    @prefix_ns_number.setter
+    def prefix_ns_number(self, prefix_ns_number):
+        """Sets the prefix_ns_number of this XmlItem.
+
+
+        :param prefix_ns_number: The prefix_ns_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._prefix_ns_number = prefix_ns_number
+
+    @property
+    def prefix_ns_integer(self):
+        """Gets the prefix_ns_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._prefix_ns_integer
+
+    @prefix_ns_integer.setter
+    def prefix_ns_integer(self, prefix_ns_integer):
+        """Sets the prefix_ns_integer of this XmlItem.
+
+
+        :param prefix_ns_integer: The prefix_ns_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._prefix_ns_integer = prefix_ns_integer
+
+    @property
+    def prefix_ns_boolean(self):
+        """Gets the prefix_ns_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._prefix_ns_boolean
+
+    @prefix_ns_boolean.setter
+    def prefix_ns_boolean(self, prefix_ns_boolean):
+        """Sets the prefix_ns_boolean of this XmlItem.
+
+
+        :param prefix_ns_boolean: The prefix_ns_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._prefix_ns_boolean = prefix_ns_boolean
+
+    @property
+    def prefix_ns_array(self):
+        """Gets the prefix_ns_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_ns_array
+
+    @prefix_ns_array.setter
+    def prefix_ns_array(self, prefix_ns_array):
+        """Sets the prefix_ns_array of this XmlItem.
+
+
+        :param prefix_ns_array: The prefix_ns_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_ns_array = prefix_ns_array
+
+    @property
+    def prefix_ns_wrapped_array(self):
+        """Gets the prefix_ns_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_ns_wrapped_array
+
+    @prefix_ns_wrapped_array.setter
+    def prefix_ns_wrapped_array(self, prefix_ns_wrapped_array):
+        """Sets the prefix_ns_wrapped_array of this XmlItem.
+
+
+        :param prefix_ns_wrapped_array: The prefix_ns_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_ns_wrapped_array = prefix_ns_wrapped_array
+
+    def to_dict(self):
+        """Returns the model properties as a dict"""
+        result = {}
+
+        for attr, _ in six.iteritems(self.openapi_types):
+            value = getattr(self, attr)
+            if isinstance(value, list):
+                result[attr] = list(map(
+                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+                    value
+                ))
+            elif hasattr(value, "to_dict"):
+                result[attr] = value.to_dict()
+            elif isinstance(value, dict):
+                result[attr] = dict(map(
+                    lambda item: (item[0], item[1].to_dict())
+                    if hasattr(item[1], "to_dict") else item,
+                    value.items()
+                ))
+            else:
+                result[attr] = value
+
+        return result
+
+    def to_str(self):
+        """Returns the string representation of the model"""
+        return pprint.pformat(self.to_dict())
+
+    def __repr__(self):
+        """For `print` and `pprint`"""
+        return self.to_str()
+
+    def __eq__(self, other):
+        """Returns true if both objects are equal"""
+        if not isinstance(other, XmlItem):
+            return False
+
+        return self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        """Returns true if both objects are not equal"""
+        return not self == other
diff --git a/samples/client/petstore/python-asyncio/test-requirements.txt b/samples/client/petstore/python-asyncio/test-requirements.txt
index 1c20b09b8656201a3ffa6ed5011adb8ee5b4187b..600ac897bb74b2004c9b50310ac53c762381532c 100644
--- a/samples/client/petstore/python-asyncio/test-requirements.txt
+++ b/samples/client/petstore/python-asyncio/test-requirements.txt
@@ -1,5 +1,5 @@
-pytest>=3.3.1
-pytest-cov>=2.5.1
+pytest>=3.6.0
+pytest-cov>=2.6.1
 pluggy>=0.3.1
 py>=1.4.31
 randomize>=0.13
diff --git a/samples/client/petstore/python-asyncio/test/test_type_holder_default.py b/samples/client/petstore/python-asyncio/test/test_type_holder_default.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a07afa6860462e786d3da024b9ce89298c9f2bc
--- /dev/null
+++ b/samples/client/petstore/python-asyncio/test/test_type_holder_default.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.type_holder_default import TypeHolderDefault  # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestTypeHolderDefault(unittest.TestCase):
+    """TypeHolderDefault unit test stubs"""
+
+    def setUp(self):
+        pass
+
+    def tearDown(self):
+        pass
+
+    def testTypeHolderDefault(self):
+        """Test TypeHolderDefault"""
+        # FIXME: construct object with mandatory attributes with example values
+        # model = petstore_api.models.type_holder_default.TypeHolderDefault()  # noqa: E501
+        pass
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/samples/client/petstore/python-asyncio/test/test_type_holder_example.py b/samples/client/petstore/python-asyncio/test/test_type_holder_example.py
new file mode 100644
index 0000000000000000000000000000000000000000..7a262149485787cb4df70965e35a64953a20b52b
--- /dev/null
+++ b/samples/client/petstore/python-asyncio/test/test_type_holder_example.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.type_holder_example import TypeHolderExample  # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestTypeHolderExample(unittest.TestCase):
+    """TypeHolderExample unit test stubs"""
+
+    def setUp(self):
+        pass
+
+    def tearDown(self):
+        pass
+
+    def testTypeHolderExample(self):
+        """Test TypeHolderExample"""
+        # FIXME: construct object with mandatory attributes with example values
+        # model = petstore_api.models.type_holder_example.TypeHolderExample()  # noqa: E501
+        pass
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/samples/client/petstore/python-asyncio/test/test_xml_item.py b/samples/client/petstore/python-asyncio/test/test_xml_item.py
new file mode 100644
index 0000000000000000000000000000000000000000..121f1ccb66235496840e244f3d3d23dbecb5f22d
--- /dev/null
+++ b/samples/client/petstore/python-asyncio/test/test_xml_item.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.xml_item import XmlItem  # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestXmlItem(unittest.TestCase):
+    """XmlItem unit test stubs"""
+
+    def setUp(self):
+        pass
+
+    def tearDown(self):
+        pass
+
+    def testXmlItem(self):
+        """Test XmlItem"""
+        # FIXME: construct object with mandatory attributes with example values
+        # model = petstore_api.models.xml_item.XmlItem()  # noqa: E501
+        pass
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/samples/client/petstore/python-tornado/README.md b/samples/client/petstore/python-tornado/README.md
index 05c64828c81a4219421339c89defb17aefdd3f2e..218749c0433bc02c5b762b0ff4e58f1fa1926572 100644
--- a/samples/client/petstore/python-tornado/README.md
+++ b/samples/client/petstore/python-tornado/README.md
@@ -53,11 +53,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.AnotherFakeApi(petstore_api.ApiClient(configuration))
-client = petstore_api.Client() # Client | client model
+body = petstore_api.Client() # Client | client model
 
 try:
     # To test special tags
-    api_response = api_instance.call_123_test_special_tags(client)
+    api_response = api_instance.call_123_test_special_tags(body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling AnotherFakeApi->call_123_test_special_tags: %s\n" % e)
@@ -71,6 +71,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 Class | Method | HTTP request | Description
 ------------ | ------------- | ------------- | -------------
 *AnotherFakeApi* | [**call_123_test_special_tags**](docs/AnotherFakeApi.md#call_123_test_special_tags) | **PATCH** /another-fake/dummy | To test special tags
+*FakeApi* | [**create_xml_item**](docs/FakeApi.md#create_xml_item) | **POST** /fake/create_xml_item | creates an XmlItem
 *FakeApi* | [**fake_outer_boolean_serialize**](docs/FakeApi.md#fake_outer_boolean_serialize) | **POST** /fake/outer/boolean | 
 *FakeApi* | [**fake_outer_composite_serialize**](docs/FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite | 
 *FakeApi* | [**fake_outer_number_serialize**](docs/FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number | 
@@ -142,7 +143,10 @@ Class | Method | HTTP request | Description
  - [ReadOnlyFirst](docs/ReadOnlyFirst.md)
  - [SpecialModelName](docs/SpecialModelName.md)
  - [Tag](docs/Tag.md)
+ - [TypeHolderDefault](docs/TypeHolderDefault.md)
+ - [TypeHolderExample](docs/TypeHolderExample.md)
  - [User](docs/User.md)
+ - [XmlItem](docs/XmlItem.md)
 
 
 ## Documentation For Authorization
diff --git a/samples/client/petstore/python-tornado/docs/AnotherFakeApi.md b/samples/client/petstore/python-tornado/docs/AnotherFakeApi.md
index 447ce3edde3a9c4e7e6b6e4f50cb5d7bf0dc2967..53d8da58f0c11165c827195629541d9094ce6ce8 100644
--- a/samples/client/petstore/python-tornado/docs/AnotherFakeApi.md
+++ b/samples/client/petstore/python-tornado/docs/AnotherFakeApi.md
@@ -8,7 +8,7 @@ Method | HTTP request | Description
 
 
 # **call_123_test_special_tags**
-> Client call_123_test_special_tags(client)
+> Client call_123_test_special_tags(body)
 
 To test special tags
 
@@ -24,11 +24,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.AnotherFakeApi()
-client = petstore_api.Client() # Client | client model
+body = petstore_api.Client() # Client | client model
 
 try:
     # To test special tags
-    api_response = api_instance.call_123_test_special_tags(client)
+    api_response = api_instance.call_123_test_special_tags(body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling AnotherFakeApi->call_123_test_special_tags: %s\n" % e)
@@ -38,7 +38,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **client** | [**Client**](Client.md)| client model | 
+ **body** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-tornado/docs/FakeApi.md b/samples/client/petstore/python-tornado/docs/FakeApi.md
index 97dc3c892e07086ba3db5fba255f5fb1628dbcd8..d504255dd4007516a0ada2344040c45291fd463f 100644
--- a/samples/client/petstore/python-tornado/docs/FakeApi.md
+++ b/samples/client/petstore/python-tornado/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**create_xml_item**](FakeApi.md#create_xml_item) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fake_outer_boolean_serialize**](FakeApi.md#fake_outer_boolean_serialize) | **POST** /fake/outer/boolean | 
 [**fake_outer_composite_serialize**](FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite | 
 [**fake_outer_number_serialize**](FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,53 @@ Method | HTTP request | Description
 [**test_json_form_data**](FakeApi.md#test_json_form_data) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+# **create_xml_item**
+> create_xml_item(xml_item)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+xml_item = petstore_api.XmlItem() # XmlItem | XmlItem Body
+
+try:
+    # creates an XmlItem
+    api_instance.create_xml_item(xml_item)
+except ApiException as e:
+    print("Exception when calling FakeApi->create_xml_item: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xml_item** | [**XmlItem**](XmlItem.md)| XmlItem Body | 
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
 # **fake_outer_boolean_serialize**
 > bool fake_outer_boolean_serialize(body=body)
 
@@ -66,7 +114,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **fake_outer_composite_serialize**
-> OuterComposite fake_outer_composite_serialize(outer_composite=outer_composite)
+> OuterComposite fake_outer_composite_serialize(body=body)
 
 
 
@@ -82,10 +130,10 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.FakeApi()
-outer_composite = petstore_api.OuterComposite() # OuterComposite | Input composite as post body (optional)
+body = petstore_api.OuterComposite() # OuterComposite | Input composite as post body (optional)
 
 try:
-    api_response = api_instance.fake_outer_composite_serialize(outer_composite=outer_composite)
+    api_response = api_instance.fake_outer_composite_serialize(body=body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling FakeApi->fake_outer_composite_serialize: %s\n" % e)
@@ -95,7 +143,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **outer_composite** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] 
+ **body** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] 
 
 ### Return type
 
@@ -207,7 +255,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **test_body_with_file_schema**
-> test_body_with_file_schema(file_schema_test_class)
+> test_body_with_file_schema(body)
 
 
 
@@ -223,10 +271,10 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.FakeApi()
-file_schema_test_class = petstore_api.FileSchemaTestClass() # FileSchemaTestClass | 
+body = petstore_api.FileSchemaTestClass() # FileSchemaTestClass | 
 
 try:
-    api_instance.test_body_with_file_schema(file_schema_test_class)
+    api_instance.test_body_with_file_schema(body)
 except ApiException as e:
     print("Exception when calling FakeApi->test_body_with_file_schema: %s\n" % e)
 ```
@@ -235,7 +283,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **file_schema_test_class** | [**FileSchemaTestClass**](FileSchemaTestClass.md)|  | 
+ **body** | [**FileSchemaTestClass**](FileSchemaTestClass.md)|  | 
 
 ### Return type
 
@@ -253,7 +301,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **test_body_with_query_params**
-> test_body_with_query_params(query, user)
+> test_body_with_query_params(query, body)
 
 
 
@@ -268,10 +316,10 @@ from pprint import pprint
 # create an instance of the API class
 api_instance = petstore_api.FakeApi()
 query = 'query_example' # str | 
-user = petstore_api.User() # User | 
+body = petstore_api.User() # User | 
 
 try:
-    api_instance.test_body_with_query_params(query, user)
+    api_instance.test_body_with_query_params(query, body)
 except ApiException as e:
     print("Exception when calling FakeApi->test_body_with_query_params: %s\n" % e)
 ```
@@ -281,7 +329,7 @@ except ApiException as e:
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
  **query** | **str**|  | 
- **user** | [**User**](User.md)|  | 
+ **body** | [**User**](User.md)|  | 
 
 ### Return type
 
@@ -299,7 +347,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **test_client_model**
-> Client test_client_model(client)
+> Client test_client_model(body)
 
 To test \"client\" model
 
@@ -315,11 +363,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.FakeApi()
-client = petstore_api.Client() # Client | client model
+body = petstore_api.Client() # Client | client model
 
 try:
     # To test \"client\" model
-    api_response = api_instance.test_client_model(client)
+    api_response = api_instance.test_client_model(body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling FakeApi->test_client_model: %s\n" % e)
@@ -329,7 +377,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **client** | [**Client**](Client.md)| client model | 
+ **body** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
@@ -545,7 +593,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **test_inline_additional_properties**
-> test_inline_additional_properties(request_body)
+> test_inline_additional_properties(param)
 
 test inline additionalProperties
 
@@ -559,11 +607,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.FakeApi()
-request_body = {'key': 'request_body_example'} # dict(str, str) | request body
+param = {'key': 'param_example'} # dict(str, str) | request body
 
 try:
     # test inline additionalProperties
-    api_instance.test_inline_additional_properties(request_body)
+    api_instance.test_inline_additional_properties(param)
 except ApiException as e:
     print("Exception when calling FakeApi->test_inline_additional_properties: %s\n" % e)
 ```
@@ -572,7 +620,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **request_body** | [**dict(str, str)**](str.md)| request body | 
+ **param** | [**dict(str, str)**](str.md)| request body | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-tornado/docs/FakeClassnameTags123Api.md b/samples/client/petstore/python-tornado/docs/FakeClassnameTags123Api.md
index 3180674a077d747b6a86c8c3617583a10b1693ba..64bb06890df50e75012682449aa282dc1b08f41c 100644
--- a/samples/client/petstore/python-tornado/docs/FakeClassnameTags123Api.md
+++ b/samples/client/petstore/python-tornado/docs/FakeClassnameTags123Api.md
@@ -8,7 +8,7 @@ Method | HTTP request | Description
 
 
 # **test_classname**
-> Client test_classname(client)
+> Client test_classname(body)
 
 To test class name in snake case
 
@@ -32,11 +32,11 @@ configuration.api_key['api_key_query'] = 'YOUR_API_KEY'
 
 # create an instance of the API class
 api_instance = petstore_api.FakeClassnameTags123Api(petstore_api.ApiClient(configuration))
-client = petstore_api.Client() # Client | client model
+body = petstore_api.Client() # Client | client model
 
 try:
     # To test class name in snake case
-    api_response = api_instance.test_classname(client)
+    api_response = api_instance.test_classname(body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling FakeClassnameTags123Api->test_classname: %s\n" % e)
@@ -46,7 +46,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **client** | [**Client**](Client.md)| client model | 
+ **body** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-tornado/docs/Pet.md b/samples/client/petstore/python-tornado/docs/Pet.md
index 9e15090300f8ab4966b0f898b13bda00fa457c5b..f9ea079075d1ee5fec398e4cadadfed041800780 100644
--- a/samples/client/petstore/python-tornado/docs/Pet.md
+++ b/samples/client/petstore/python-tornado/docs/Pet.md
@@ -5,7 +5,7 @@ Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **id** | **int** |  | [optional] 
 **category** | [**Category**](Category.md) |  | [optional] 
-**name** | **str** |  | 
+**name** | **str** |  | [default to 'doggie']
 **photo_urls** | **list[str]** |  | 
 **tags** | [**list[Tag]**](Tag.md) |  | [optional] 
 **status** | **str** | pet status in the store | [optional] 
diff --git a/samples/client/petstore/python-tornado/docs/PetApi.md b/samples/client/petstore/python-tornado/docs/PetApi.md
index 726db4708d7693c46b4ed71c677d786886115057..8a0604706dbf3737e7207a8d8e0111293ae313f9 100644
--- a/samples/client/petstore/python-tornado/docs/PetApi.md
+++ b/samples/client/petstore/python-tornado/docs/PetApi.md
@@ -16,7 +16,7 @@ Method | HTTP request | Description
 
 
 # **add_pet**
-> add_pet(pet)
+> add_pet(body)
 
 Add a new pet to the store
 
@@ -36,11 +36,11 @@ configuration.access_token = 'YOUR_ACCESS_TOKEN'
 
 # create an instance of the API class
 api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
-pet = petstore_api.Pet() # Pet | Pet object that needs to be added to the store
+body = petstore_api.Pet() # Pet | Pet object that needs to be added to the store
 
 try:
     # Add a new pet to the store
-    api_instance.add_pet(pet)
+    api_instance.add_pet(body)
 except ApiException as e:
     print("Exception when calling PetApi->add_pet: %s\n" % e)
 ```
@@ -49,7 +49,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
+ **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
 
 ### Return type
 
@@ -284,7 +284,7 @@ Name | Type | Description  | Notes
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **update_pet**
-> update_pet(pet)
+> update_pet(body)
 
 Update an existing pet
 
@@ -304,11 +304,11 @@ configuration.access_token = 'YOUR_ACCESS_TOKEN'
 
 # create an instance of the API class
 api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
-pet = petstore_api.Pet() # Pet | Pet object that needs to be added to the store
+body = petstore_api.Pet() # Pet | Pet object that needs to be added to the store
 
 try:
     # Update an existing pet
-    api_instance.update_pet(pet)
+    api_instance.update_pet(body)
 except ApiException as e:
     print("Exception when calling PetApi->update_pet: %s\n" % e)
 ```
@@ -317,7 +317,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
+ **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-tornado/docs/StoreApi.md b/samples/client/petstore/python-tornado/docs/StoreApi.md
index ab342460f865f289f2ea3302f69e9269904fb452..11f04da636e97416586d268b847039e131ba687a 100644
--- a/samples/client/petstore/python-tornado/docs/StoreApi.md
+++ b/samples/client/petstore/python-tornado/docs/StoreApi.md
@@ -158,7 +158,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **place_order**
-> Order place_order(order)
+> Order place_order(body)
 
 Place an order for a pet
 
@@ -172,11 +172,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.StoreApi()
-order = petstore_api.Order() # Order | order placed for purchasing the pet
+body = petstore_api.Order() # Order | order placed for purchasing the pet
 
 try:
     # Place an order for a pet
-    api_response = api_instance.place_order(order)
+    api_response = api_instance.place_order(body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling StoreApi->place_order: %s\n" % e)
@@ -186,7 +186,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **order** | [**Order**](Order.md)| order placed for purchasing the pet | 
+ **body** | [**Order**](Order.md)| order placed for purchasing the pet | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-tornado/docs/TypeHolderDefault.md b/samples/client/petstore/python-tornado/docs/TypeHolderDefault.md
new file mode 100644
index 0000000000000000000000000000000000000000..861da021826a5743f4a2d8f4ee528981dad83ead
--- /dev/null
+++ b/samples/client/petstore/python-tornado/docs/TypeHolderDefault.md
@@ -0,0 +1,14 @@
+# TypeHolderDefault
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**string_item** | **str** |  | [default to 'what']
+**number_item** | **float** |  | 
+**integer_item** | **int** |  | 
+**bool_item** | **bool** |  | [default to True]
+**array_item** | **list[int]** |  | 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/client/petstore/python-tornado/docs/TypeHolderExample.md b/samples/client/petstore/python-tornado/docs/TypeHolderExample.md
new file mode 100644
index 0000000000000000000000000000000000000000..1a1535f4dee30a2df36d5a2233b63b6d33e42175
--- /dev/null
+++ b/samples/client/petstore/python-tornado/docs/TypeHolderExample.md
@@ -0,0 +1,14 @@
+# TypeHolderExample
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**string_item** | **str** |  | [default to 'what']
+**number_item** | **float** |  | [default to 1.234]
+**integer_item** | **int** |  | [default to -2]
+**bool_item** | **bool** |  | [default to True]
+**array_item** | **list[int]** |  | [default to [0, 1, 2, 3]]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/client/petstore/python-tornado/docs/UserApi.md b/samples/client/petstore/python-tornado/docs/UserApi.md
index c7cc8b64d6638cdf3baa9a3219c16c19b6e8bbee..f0d9581779c66490970ae5ebf4d1cda982f78faa 100644
--- a/samples/client/petstore/python-tornado/docs/UserApi.md
+++ b/samples/client/petstore/python-tornado/docs/UserApi.md
@@ -15,7 +15,7 @@ Method | HTTP request | Description
 
 
 # **create_user**
-> create_user(user)
+> create_user(body)
 
 Create user
 
@@ -31,11 +31,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.UserApi()
-user = petstore_api.User() # User | Created user object
+body = petstore_api.User() # User | Created user object
 
 try:
     # Create user
-    api_instance.create_user(user)
+    api_instance.create_user(body)
 except ApiException as e:
     print("Exception when calling UserApi->create_user: %s\n" % e)
 ```
@@ -44,7 +44,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **user** | [**User**](User.md)| Created user object | 
+ **body** | [**User**](User.md)| Created user object | 
 
 ### Return type
 
@@ -62,7 +62,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **create_users_with_array_input**
-> create_users_with_array_input(user)
+> create_users_with_array_input(body)
 
 Creates list of users with given input array
 
@@ -76,11 +76,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.UserApi()
-user = NULL # list[User] | List of user object
+body = NULL # list[User] | List of user object
 
 try:
     # Creates list of users with given input array
-    api_instance.create_users_with_array_input(user)
+    api_instance.create_users_with_array_input(body)
 except ApiException as e:
     print("Exception when calling UserApi->create_users_with_array_input: %s\n" % e)
 ```
@@ -89,7 +89,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **user** | [**list[User]**](list.md)| List of user object | 
+ **body** | [**list[User]**](list.md)| List of user object | 
 
 ### Return type
 
@@ -107,7 +107,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **create_users_with_list_input**
-> create_users_with_list_input(user)
+> create_users_with_list_input(body)
 
 Creates list of users with given input array
 
@@ -121,11 +121,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = petstore_api.UserApi()
-user = NULL # list[User] | List of user object
+body = NULL # list[User] | List of user object
 
 try:
     # Creates list of users with given input array
-    api_instance.create_users_with_list_input(user)
+    api_instance.create_users_with_list_input(body)
 except ApiException as e:
     print("Exception when calling UserApi->create_users_with_list_input: %s\n" % e)
 ```
@@ -134,7 +134,7 @@ except ApiException as e:
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **user** | [**list[User]**](list.md)| List of user object | 
+ **body** | [**list[User]**](list.md)| List of user object | 
 
 ### Return type
 
@@ -334,7 +334,7 @@ No authorization required
 [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
 
 # **update_user**
-> update_user(username, user)
+> update_user(username, body)
 
 Updated user
 
@@ -351,11 +351,11 @@ from pprint import pprint
 # create an instance of the API class
 api_instance = petstore_api.UserApi()
 username = 'username_example' # str | name that need to be deleted
-user = petstore_api.User() # User | Updated user object
+body = petstore_api.User() # User | Updated user object
 
 try:
     # Updated user
-    api_instance.update_user(username, user)
+    api_instance.update_user(username, body)
 except ApiException as e:
     print("Exception when calling UserApi->update_user: %s\n" % e)
 ```
@@ -365,7 +365,7 @@ except ApiException as e:
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
  **username** | **str**| name that need to be deleted | 
- **user** | [**User**](User.md)| Updated user object | 
+ **body** | [**User**](User.md)| Updated user object | 
 
 ### Return type
 
diff --git a/samples/client/petstore/python-tornado/docs/XmlItem.md b/samples/client/petstore/python-tornado/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..929e09ef5294dac857b0c3e4a7ddcd1f3dec88ba
--- /dev/null
+++ b/samples/client/petstore/python-tornado/docs/XmlItem.md
@@ -0,0 +1,38 @@
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute_string** | **str** |  | [optional] [default to 'string']
+**attribute_number** | **float** |  | [optional] [default to 1.234]
+**attribute_integer** | **int** |  | [optional] [default to -2]
+**attribute_boolean** | **bool** |  | [optional] [default to True]
+**wrapped_array** | **list[int]** |  | [optional] 
+**name_string** | **str** |  | [optional] [default to 'string']
+**name_number** | **float** |  | [optional] [default to 1.234]
+**name_integer** | **int** |  | [optional] [default to -2]
+**name_boolean** | **bool** |  | [optional] [default to True]
+**name_array** | **list[int]** |  | [optional] 
+**name_wrapped_array** | **list[int]** |  | [optional] 
+**prefix_string** | **str** |  | [optional] [default to 'string']
+**prefix_number** | **float** |  | [optional] [default to 1.234]
+**prefix_integer** | **int** |  | [optional] [default to -2]
+**prefix_boolean** | **bool** |  | [optional] [default to True]
+**prefix_array** | **list[int]** |  | [optional] 
+**prefix_wrapped_array** | **list[int]** |  | [optional] 
+**namespace_string** | **str** |  | [optional] [default to 'string']
+**namespace_number** | **float** |  | [optional] [default to 1.234]
+**namespace_integer** | **int** |  | [optional] [default to -2]
+**namespace_boolean** | **bool** |  | [optional] [default to True]
+**namespace_array** | **list[int]** |  | [optional] 
+**namespace_wrapped_array** | **list[int]** |  | [optional] 
+**prefix_ns_string** | **str** |  | [optional] [default to 'string']
+**prefix_ns_number** | **float** |  | [optional] [default to 1.234]
+**prefix_ns_integer** | **int** |  | [optional] [default to -2]
+**prefix_ns_boolean** | **bool** |  | [optional] [default to True]
+**prefix_ns_array** | **list[int]** |  | [optional] 
+**prefix_ns_wrapped_array** | **list[int]** |  | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/client/petstore/python-tornado/petstore_api/__init__.py b/samples/client/petstore/python-tornado/petstore_api/__init__.py
index 88ac77881e3e70e5b1267f702922c6276345ba25..cf9b1b0db3f981f63a6ccf01d74b9644766e58ab 100644
--- a/samples/client/petstore/python-tornado/petstore_api/__init__.py
+++ b/samples/client/petstore/python-tornado/petstore_api/__init__.py
@@ -61,4 +61,7 @@ from petstore_api.models.pet import Pet
 from petstore_api.models.read_only_first import ReadOnlyFirst
 from petstore_api.models.special_model_name import SpecialModelName
 from petstore_api.models.tag import Tag
+from petstore_api.models.type_holder_default import TypeHolderDefault
+from petstore_api.models.type_holder_example import TypeHolderExample
 from petstore_api.models.user import User
+from petstore_api.models.xml_item import XmlItem
diff --git a/samples/client/petstore/python-tornado/petstore_api/api/another_fake_api.py b/samples/client/petstore/python-tornado/petstore_api/api/another_fake_api.py
index 782f7fd07b35354ed505ae6951be6d515524c639..9fd3f816b9caae8e15ead4bcc26dff97a8856255 100644
--- a/samples/client/petstore/python-tornado/petstore_api/api/another_fake_api.py
+++ b/samples/client/petstore/python-tornado/petstore_api/api/another_fake_api.py
@@ -32,39 +32,39 @@ class AnotherFakeApi(object):
             api_client = ApiClient()
         self.api_client = api_client
 
-    def call_123_test_special_tags(self, client, **kwargs):  # noqa: E501
+    def call_123_test_special_tags(self, body, **kwargs):  # noqa: E501
         """To test special tags  # noqa: E501
 
         To test special tags and operation ID starting with number  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.call_123_test_special_tags(client, async_req=True)
+        >>> thread = api.call_123_test_special_tags(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.call_123_test_special_tags_with_http_info(client, **kwargs)  # noqa: E501
+            return self.call_123_test_special_tags_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.call_123_test_special_tags_with_http_info(client, **kwargs)  # noqa: E501
+            (data) = self.call_123_test_special_tags_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def call_123_test_special_tags_with_http_info(self, client, **kwargs):  # noqa: E501
+    def call_123_test_special_tags_with_http_info(self, body, **kwargs):  # noqa: E501
         """To test special tags  # noqa: E501
 
         To test special tags and operation ID starting with number  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.call_123_test_special_tags_with_http_info(client, async_req=True)
+        >>> thread = api.call_123_test_special_tags_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
@@ -72,7 +72,7 @@ class AnotherFakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['client']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -86,10 +86,10 @@ class AnotherFakeApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'client' is set
-        if ('client' not in local_var_params or
-                local_var_params['client'] is None):
-            raise ValueError("Missing the required parameter `client` when calling `call_123_test_special_tags`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `call_123_test_special_tags`")  # noqa: E501
 
         collection_formats = {}
 
@@ -103,8 +103,8 @@ class AnotherFakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'client' in local_var_params:
-            body_params = local_var_params['client']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Accept`
         header_params['Accept'] = self.api_client.select_header_accept(
             ['application/json'])  # noqa: E501
diff --git a/samples/client/petstore/python-tornado/petstore_api/api/fake_api.py b/samples/client/petstore/python-tornado/petstore_api/api/fake_api.py
index 1647628c40758b9871c978440e3051629ef92651..c7405e51c38100e8cce59314aaa0d186ec47a27a 100644
--- a/samples/client/petstore/python-tornado/petstore_api/api/fake_api.py
+++ b/samples/client/petstore/python-tornado/petstore_api/api/fake_api.py
@@ -32,6 +32,102 @@ class FakeApi(object):
             api_client = ApiClient()
         self.api_client = api_client
 
+    def create_xml_item(self, xml_item, **kwargs):  # noqa: E501
+        """creates an XmlItem  # noqa: E501
+
+        this route creates an XmlItem  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+        >>> thread = api.create_xml_item(xml_item, async_req=True)
+        >>> result = thread.get()
+
+        :param async_req bool
+        :param XmlItem xml_item: XmlItem Body (required)
+        :return: None
+                 If the method is called asynchronously,
+                 returns the request thread.
+        """
+        kwargs['_return_http_data_only'] = True
+        if kwargs.get('async_req'):
+            return self.create_xml_item_with_http_info(xml_item, **kwargs)  # noqa: E501
+        else:
+            (data) = self.create_xml_item_with_http_info(xml_item, **kwargs)  # noqa: E501
+            return data
+
+    def create_xml_item_with_http_info(self, xml_item, **kwargs):  # noqa: E501
+        """creates an XmlItem  # noqa: E501
+
+        this route creates an XmlItem  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+        >>> thread = api.create_xml_item_with_http_info(xml_item, async_req=True)
+        >>> result = thread.get()
+
+        :param async_req bool
+        :param XmlItem xml_item: XmlItem Body (required)
+        :return: None
+                 If the method is called asynchronously,
+                 returns the request thread.
+        """
+
+        local_var_params = locals()
+
+        all_params = ['xml_item']  # noqa: E501
+        all_params.append('async_req')
+        all_params.append('_return_http_data_only')
+        all_params.append('_preload_content')
+        all_params.append('_request_timeout')
+
+        for key, val in six.iteritems(local_var_params['kwargs']):
+            if key not in all_params:
+                raise TypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method create_xml_item" % key
+                )
+            local_var_params[key] = val
+        del local_var_params['kwargs']
+        # verify the required parameter 'xml_item' is set
+        if ('xml_item' not in local_var_params or
+                local_var_params['xml_item'] is None):
+            raise ValueError("Missing the required parameter `xml_item` when calling `create_xml_item`")  # noqa: E501
+
+        collection_formats = {}
+
+        path_params = {}
+
+        query_params = []
+
+        header_params = {}
+
+        form_params = []
+        local_var_files = {}
+
+        body_params = None
+        if 'xml_item' in local_var_params:
+            body_params = local_var_params['xml_item']
+        # HTTP header `Content-Type`
+        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
+            ['application/xml', 'application/xml; charset=utf-8', 'application/xml; charset=utf-16', 'text/xml', 'text/xml; charset=utf-8', 'text/xml; charset=utf-16'])  # noqa: E501
+
+        # Authentication setting
+        auth_settings = []  # noqa: E501
+
+        return self.api_client.call_api(
+            '/fake/create_xml_item', 'POST',
+            path_params,
+            query_params,
+            header_params,
+            body=body_params,
+            post_params=form_params,
+            files=local_var_files,
+            response_type=None,  # noqa: E501
+            auth_settings=auth_settings,
+            async_req=local_var_params.get('async_req'),
+            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=local_var_params.get('_preload_content', True),
+            _request_timeout=local_var_params.get('_request_timeout'),
+            collection_formats=collection_formats)
+
     def fake_outer_boolean_serialize(self, **kwargs):  # noqa: E501
         """fake_outer_boolean_serialize  # noqa: E501
 
@@ -134,7 +230,7 @@ class FakeApi(object):
         >>> result = thread.get()
 
         :param async_req bool
-        :param OuterComposite outer_composite: Input composite as post body
+        :param OuterComposite body: Input composite as post body
         :return: OuterComposite
                  If the method is called asynchronously,
                  returns the request thread.
@@ -156,7 +252,7 @@ class FakeApi(object):
         >>> result = thread.get()
 
         :param async_req bool
-        :param OuterComposite outer_composite: Input composite as post body
+        :param OuterComposite body: Input composite as post body
         :return: OuterComposite
                  If the method is called asynchronously,
                  returns the request thread.
@@ -164,7 +260,7 @@ class FakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['outer_composite']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -191,8 +287,8 @@ class FakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'outer_composite' in local_var_params:
-            body_params = local_var_params['outer_composite']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Accept`
         header_params['Accept'] = self.api_client.select_header_accept(
             ['*/*'])  # noqa: E501
@@ -400,39 +496,39 @@ class FakeApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def test_body_with_file_schema(self, file_schema_test_class, **kwargs):  # noqa: E501
+    def test_body_with_file_schema(self, body, **kwargs):  # noqa: E501
         """test_body_with_file_schema  # noqa: E501
 
         For this test, the body for this request much reference a schema named `File`.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_body_with_file_schema(file_schema_test_class, async_req=True)
+        >>> thread = api.test_body_with_file_schema(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param FileSchemaTestClass file_schema_test_class: (required)
+        :param FileSchemaTestClass body: (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.test_body_with_file_schema_with_http_info(file_schema_test_class, **kwargs)  # noqa: E501
+            return self.test_body_with_file_schema_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.test_body_with_file_schema_with_http_info(file_schema_test_class, **kwargs)  # noqa: E501
+            (data) = self.test_body_with_file_schema_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def test_body_with_file_schema_with_http_info(self, file_schema_test_class, **kwargs):  # noqa: E501
+    def test_body_with_file_schema_with_http_info(self, body, **kwargs):  # noqa: E501
         """test_body_with_file_schema  # noqa: E501
 
         For this test, the body for this request much reference a schema named `File`.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_body_with_file_schema_with_http_info(file_schema_test_class, async_req=True)
+        >>> thread = api.test_body_with_file_schema_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param FileSchemaTestClass file_schema_test_class: (required)
+        :param FileSchemaTestClass body: (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -440,7 +536,7 @@ class FakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['file_schema_test_class']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -454,10 +550,10 @@ class FakeApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'file_schema_test_class' is set
-        if ('file_schema_test_class' not in local_var_params or
-                local_var_params['file_schema_test_class'] is None):
-            raise ValueError("Missing the required parameter `file_schema_test_class` when calling `test_body_with_file_schema`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `test_body_with_file_schema`")  # noqa: E501
 
         collection_formats = {}
 
@@ -471,8 +567,8 @@ class FakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'file_schema_test_class' in local_var_params:
-            body_params = local_var_params['file_schema_test_class']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Content-Type`
         header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
             ['application/json'])  # noqa: E501
@@ -496,39 +592,39 @@ class FakeApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def test_body_with_query_params(self, query, user, **kwargs):  # noqa: E501
+    def test_body_with_query_params(self, query, body, **kwargs):  # noqa: E501
         """test_body_with_query_params  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_body_with_query_params(query, user, async_req=True)
+        >>> thread = api.test_body_with_query_params(query, body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
         :param str query: (required)
-        :param User user: (required)
+        :param User body: (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.test_body_with_query_params_with_http_info(query, user, **kwargs)  # noqa: E501
+            return self.test_body_with_query_params_with_http_info(query, body, **kwargs)  # noqa: E501
         else:
-            (data) = self.test_body_with_query_params_with_http_info(query, user, **kwargs)  # noqa: E501
+            (data) = self.test_body_with_query_params_with_http_info(query, body, **kwargs)  # noqa: E501
             return data
 
-    def test_body_with_query_params_with_http_info(self, query, user, **kwargs):  # noqa: E501
+    def test_body_with_query_params_with_http_info(self, query, body, **kwargs):  # noqa: E501
         """test_body_with_query_params  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_body_with_query_params_with_http_info(query, user, async_req=True)
+        >>> thread = api.test_body_with_query_params_with_http_info(query, body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
         :param str query: (required)
-        :param User user: (required)
+        :param User body: (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -536,7 +632,7 @@ class FakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['query', 'user']  # noqa: E501
+        all_params = ['query', 'body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -554,10 +650,10 @@ class FakeApi(object):
         if ('query' not in local_var_params or
                 local_var_params['query'] is None):
             raise ValueError("Missing the required parameter `query` when calling `test_body_with_query_params`")  # noqa: E501
-        # verify the required parameter 'user' is set
-        if ('user' not in local_var_params or
-                local_var_params['user'] is None):
-            raise ValueError("Missing the required parameter `user` when calling `test_body_with_query_params`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `test_body_with_query_params`")  # noqa: E501
 
         collection_formats = {}
 
@@ -573,8 +669,8 @@ class FakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'user' in local_var_params:
-            body_params = local_var_params['user']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Content-Type`
         header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
             ['application/json'])  # noqa: E501
@@ -598,39 +694,39 @@ class FakeApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def test_client_model(self, client, **kwargs):  # noqa: E501
+    def test_client_model(self, body, **kwargs):  # noqa: E501
         """To test \"client\" model  # noqa: E501
 
         To test \"client\" model  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_client_model(client, async_req=True)
+        >>> thread = api.test_client_model(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.test_client_model_with_http_info(client, **kwargs)  # noqa: E501
+            return self.test_client_model_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.test_client_model_with_http_info(client, **kwargs)  # noqa: E501
+            (data) = self.test_client_model_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def test_client_model_with_http_info(self, client, **kwargs):  # noqa: E501
+    def test_client_model_with_http_info(self, body, **kwargs):  # noqa: E501
         """To test \"client\" model  # noqa: E501
 
         To test \"client\" model  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_client_model_with_http_info(client, async_req=True)
+        >>> thread = api.test_client_model_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
@@ -638,7 +734,7 @@ class FakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['client']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -652,10 +748,10 @@ class FakeApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'client' is set
-        if ('client' not in local_var_params or
-                local_var_params['client'] is None):
-            raise ValueError("Missing the required parameter `client` when calling `test_client_model`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `test_client_model`")  # noqa: E501
 
         collection_formats = {}
 
@@ -669,8 +765,8 @@ class FakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'client' in local_var_params:
-            body_params = local_var_params['client']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Accept`
         header_params['Accept'] = self.api_client.select_header_accept(
             ['application/json'])  # noqa: E501
@@ -1129,37 +1225,37 @@ class FakeApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def test_inline_additional_properties(self, request_body, **kwargs):  # noqa: E501
+    def test_inline_additional_properties(self, param, **kwargs):  # noqa: E501
         """test inline additionalProperties  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_inline_additional_properties(request_body, async_req=True)
+        >>> thread = api.test_inline_additional_properties(param, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param dict(str, str) request_body: request body (required)
+        :param dict(str, str) param: request body (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.test_inline_additional_properties_with_http_info(request_body, **kwargs)  # noqa: E501
+            return self.test_inline_additional_properties_with_http_info(param, **kwargs)  # noqa: E501
         else:
-            (data) = self.test_inline_additional_properties_with_http_info(request_body, **kwargs)  # noqa: E501
+            (data) = self.test_inline_additional_properties_with_http_info(param, **kwargs)  # noqa: E501
             return data
 
-    def test_inline_additional_properties_with_http_info(self, request_body, **kwargs):  # noqa: E501
+    def test_inline_additional_properties_with_http_info(self, param, **kwargs):  # noqa: E501
         """test inline additionalProperties  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_inline_additional_properties_with_http_info(request_body, async_req=True)
+        >>> thread = api.test_inline_additional_properties_with_http_info(param, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param dict(str, str) request_body: request body (required)
+        :param dict(str, str) param: request body (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -1167,7 +1263,7 @@ class FakeApi(object):
 
         local_var_params = locals()
 
-        all_params = ['request_body']  # noqa: E501
+        all_params = ['param']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -1181,10 +1277,10 @@ class FakeApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'request_body' is set
-        if ('request_body' not in local_var_params or
-                local_var_params['request_body'] is None):
-            raise ValueError("Missing the required parameter `request_body` when calling `test_inline_additional_properties`")  # noqa: E501
+        # verify the required parameter 'param' is set
+        if ('param' not in local_var_params or
+                local_var_params['param'] is None):
+            raise ValueError("Missing the required parameter `param` when calling `test_inline_additional_properties`")  # noqa: E501
 
         collection_formats = {}
 
@@ -1198,8 +1294,8 @@ class FakeApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'request_body' in local_var_params:
-            body_params = local_var_params['request_body']
+        if 'param' in local_var_params:
+            body_params = local_var_params['param']
         # HTTP header `Content-Type`
         header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
             ['application/json'])  # noqa: E501
diff --git a/samples/client/petstore/python-tornado/petstore_api/api/fake_classname_tags_123_api.py b/samples/client/petstore/python-tornado/petstore_api/api/fake_classname_tags_123_api.py
index 80e03e6626eedf1b77a70e358d587f328f88b303..dbf6ef3dfb377a8d6e20a63cfe08232a8551431e 100644
--- a/samples/client/petstore/python-tornado/petstore_api/api/fake_classname_tags_123_api.py
+++ b/samples/client/petstore/python-tornado/petstore_api/api/fake_classname_tags_123_api.py
@@ -32,39 +32,39 @@ class FakeClassnameTags123Api(object):
             api_client = ApiClient()
         self.api_client = api_client
 
-    def test_classname(self, client, **kwargs):  # noqa: E501
+    def test_classname(self, body, **kwargs):  # noqa: E501
         """To test class name in snake case  # noqa: E501
 
         To test class name in snake case  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_classname(client, async_req=True)
+        >>> thread = api.test_classname(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.test_classname_with_http_info(client, **kwargs)  # noqa: E501
+            return self.test_classname_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.test_classname_with_http_info(client, **kwargs)  # noqa: E501
+            (data) = self.test_classname_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def test_classname_with_http_info(self, client, **kwargs):  # noqa: E501
+    def test_classname_with_http_info(self, body, **kwargs):  # noqa: E501
         """To test class name in snake case  # noqa: E501
 
         To test class name in snake case  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.test_classname_with_http_info(client, async_req=True)
+        >>> thread = api.test_classname_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Client client: client model (required)
+        :param Client body: client model (required)
         :return: Client
                  If the method is called asynchronously,
                  returns the request thread.
@@ -72,7 +72,7 @@ class FakeClassnameTags123Api(object):
 
         local_var_params = locals()
 
-        all_params = ['client']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -86,10 +86,10 @@ class FakeClassnameTags123Api(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'client' is set
-        if ('client' not in local_var_params or
-                local_var_params['client'] is None):
-            raise ValueError("Missing the required parameter `client` when calling `test_classname`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `test_classname`")  # noqa: E501
 
         collection_formats = {}
 
@@ -103,8 +103,8 @@ class FakeClassnameTags123Api(object):
         local_var_files = {}
 
         body_params = None
-        if 'client' in local_var_params:
-            body_params = local_var_params['client']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Accept`
         header_params['Accept'] = self.api_client.select_header_accept(
             ['application/json'])  # noqa: E501
diff --git a/samples/client/petstore/python-tornado/petstore_api/api/pet_api.py b/samples/client/petstore/python-tornado/petstore_api/api/pet_api.py
index cee0e90ab5c118414ad2777d4c3d1bc899357fd3..f29e7239666ad13327d718f54528c27f8320d568 100644
--- a/samples/client/petstore/python-tornado/petstore_api/api/pet_api.py
+++ b/samples/client/petstore/python-tornado/petstore_api/api/pet_api.py
@@ -32,37 +32,37 @@ class PetApi(object):
             api_client = ApiClient()
         self.api_client = api_client
 
-    def add_pet(self, pet, **kwargs):  # noqa: E501
+    def add_pet(self, body, **kwargs):  # noqa: E501
         """Add a new pet to the store  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.add_pet(pet, async_req=True)
+        >>> thread = api.add_pet(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Pet pet: Pet object that needs to be added to the store (required)
+        :param Pet body: Pet object that needs to be added to the store (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.add_pet_with_http_info(pet, **kwargs)  # noqa: E501
+            return self.add_pet_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.add_pet_with_http_info(pet, **kwargs)  # noqa: E501
+            (data) = self.add_pet_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def add_pet_with_http_info(self, pet, **kwargs):  # noqa: E501
+    def add_pet_with_http_info(self, body, **kwargs):  # noqa: E501
         """Add a new pet to the store  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.add_pet_with_http_info(pet, async_req=True)
+        >>> thread = api.add_pet_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Pet pet: Pet object that needs to be added to the store (required)
+        :param Pet body: Pet object that needs to be added to the store (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -70,7 +70,7 @@ class PetApi(object):
 
         local_var_params = locals()
 
-        all_params = ['pet']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -84,10 +84,10 @@ class PetApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'pet' is set
-        if ('pet' not in local_var_params or
-                local_var_params['pet'] is None):
-            raise ValueError("Missing the required parameter `pet` when calling `add_pet`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `add_pet`")  # noqa: E501
 
         collection_formats = {}
 
@@ -101,8 +101,8 @@ class PetApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'pet' in local_var_params:
-            body_params = local_var_params['pet']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Content-Type`
         header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
             ['application/json', 'application/xml'])  # noqa: E501
@@ -510,37 +510,37 @@ class PetApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def update_pet(self, pet, **kwargs):  # noqa: E501
+    def update_pet(self, body, **kwargs):  # noqa: E501
         """Update an existing pet  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.update_pet(pet, async_req=True)
+        >>> thread = api.update_pet(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Pet pet: Pet object that needs to be added to the store (required)
+        :param Pet body: Pet object that needs to be added to the store (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.update_pet_with_http_info(pet, **kwargs)  # noqa: E501
+            return self.update_pet_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.update_pet_with_http_info(pet, **kwargs)  # noqa: E501
+            (data) = self.update_pet_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def update_pet_with_http_info(self, pet, **kwargs):  # noqa: E501
+    def update_pet_with_http_info(self, body, **kwargs):  # noqa: E501
         """Update an existing pet  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.update_pet_with_http_info(pet, async_req=True)
+        >>> thread = api.update_pet_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Pet pet: Pet object that needs to be added to the store (required)
+        :param Pet body: Pet object that needs to be added to the store (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -548,7 +548,7 @@ class PetApi(object):
 
         local_var_params = locals()
 
-        all_params = ['pet']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -562,10 +562,10 @@ class PetApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'pet' is set
-        if ('pet' not in local_var_params or
-                local_var_params['pet'] is None):
-            raise ValueError("Missing the required parameter `pet` when calling `update_pet`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `update_pet`")  # noqa: E501
 
         collection_formats = {}
 
@@ -579,8 +579,8 @@ class PetApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'pet' in local_var_params:
-            body_params = local_var_params['pet']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Content-Type`
         header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
             ['application/json', 'application/xml'])  # noqa: E501
diff --git a/samples/client/petstore/python-tornado/petstore_api/api/store_api.py b/samples/client/petstore/python-tornado/petstore_api/api/store_api.py
index 8d471fddabf971dce9666b04268b9a8ba8c63103..bd2677ef92bcc7bd0948496fa0c663eb08b18df5 100644
--- a/samples/client/petstore/python-tornado/petstore_api/api/store_api.py
+++ b/samples/client/petstore/python-tornado/petstore_api/api/store_api.py
@@ -312,37 +312,37 @@ class StoreApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def place_order(self, order, **kwargs):  # noqa: E501
+    def place_order(self, body, **kwargs):  # noqa: E501
         """Place an order for a pet  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.place_order(order, async_req=True)
+        >>> thread = api.place_order(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Order order: order placed for purchasing the pet (required)
+        :param Order body: order placed for purchasing the pet (required)
         :return: Order
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.place_order_with_http_info(order, **kwargs)  # noqa: E501
+            return self.place_order_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.place_order_with_http_info(order, **kwargs)  # noqa: E501
+            (data) = self.place_order_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def place_order_with_http_info(self, order, **kwargs):  # noqa: E501
+    def place_order_with_http_info(self, body, **kwargs):  # noqa: E501
         """Place an order for a pet  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.place_order_with_http_info(order, async_req=True)
+        >>> thread = api.place_order_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param Order order: order placed for purchasing the pet (required)
+        :param Order body: order placed for purchasing the pet (required)
         :return: Order
                  If the method is called asynchronously,
                  returns the request thread.
@@ -350,7 +350,7 @@ class StoreApi(object):
 
         local_var_params = locals()
 
-        all_params = ['order']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -364,10 +364,10 @@ class StoreApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'order' is set
-        if ('order' not in local_var_params or
-                local_var_params['order'] is None):
-            raise ValueError("Missing the required parameter `order` when calling `place_order`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `place_order`")  # noqa: E501
 
         collection_formats = {}
 
@@ -381,8 +381,8 @@ class StoreApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'order' in local_var_params:
-            body_params = local_var_params['order']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # HTTP header `Accept`
         header_params['Accept'] = self.api_client.select_header_accept(
             ['application/xml', 'application/json'])  # noqa: E501
diff --git a/samples/client/petstore/python-tornado/petstore_api/api/user_api.py b/samples/client/petstore/python-tornado/petstore_api/api/user_api.py
index e86ac277e9786cf074c163366e7db0bfab230ae0..c27299309a6df353927eecae4e652af084f12266 100644
--- a/samples/client/petstore/python-tornado/petstore_api/api/user_api.py
+++ b/samples/client/petstore/python-tornado/petstore_api/api/user_api.py
@@ -32,39 +32,39 @@ class UserApi(object):
             api_client = ApiClient()
         self.api_client = api_client
 
-    def create_user(self, user, **kwargs):  # noqa: E501
+    def create_user(self, body, **kwargs):  # noqa: E501
         """Create user  # noqa: E501
 
         This can only be done by the logged in user.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_user(user, async_req=True)
+        >>> thread = api.create_user(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param User user: Created user object (required)
+        :param User body: Created user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.create_user_with_http_info(user, **kwargs)  # noqa: E501
+            return self.create_user_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.create_user_with_http_info(user, **kwargs)  # noqa: E501
+            (data) = self.create_user_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def create_user_with_http_info(self, user, **kwargs):  # noqa: E501
+    def create_user_with_http_info(self, body, **kwargs):  # noqa: E501
         """Create user  # noqa: E501
 
         This can only be done by the logged in user.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_user_with_http_info(user, async_req=True)
+        >>> thread = api.create_user_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param User user: Created user object (required)
+        :param User body: Created user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -72,7 +72,7 @@ class UserApi(object):
 
         local_var_params = locals()
 
-        all_params = ['user']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -86,10 +86,10 @@ class UserApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'user' is set
-        if ('user' not in local_var_params or
-                local_var_params['user'] is None):
-            raise ValueError("Missing the required parameter `user` when calling `create_user`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `create_user`")  # noqa: E501
 
         collection_formats = {}
 
@@ -103,8 +103,8 @@ class UserApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'user' in local_var_params:
-            body_params = local_var_params['user']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # Authentication setting
         auth_settings = []  # noqa: E501
 
@@ -124,37 +124,37 @@ class UserApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def create_users_with_array_input(self, user, **kwargs):  # noqa: E501
+    def create_users_with_array_input(self, body, **kwargs):  # noqa: E501
         """Creates list of users with given input array  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_users_with_array_input(user, async_req=True)
+        >>> thread = api.create_users_with_array_input(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param list[User] user: List of user object (required)
+        :param list[User] body: List of user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.create_users_with_array_input_with_http_info(user, **kwargs)  # noqa: E501
+            return self.create_users_with_array_input_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.create_users_with_array_input_with_http_info(user, **kwargs)  # noqa: E501
+            (data) = self.create_users_with_array_input_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def create_users_with_array_input_with_http_info(self, user, **kwargs):  # noqa: E501
+    def create_users_with_array_input_with_http_info(self, body, **kwargs):  # noqa: E501
         """Creates list of users with given input array  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_users_with_array_input_with_http_info(user, async_req=True)
+        >>> thread = api.create_users_with_array_input_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param list[User] user: List of user object (required)
+        :param list[User] body: List of user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -162,7 +162,7 @@ class UserApi(object):
 
         local_var_params = locals()
 
-        all_params = ['user']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -176,10 +176,10 @@ class UserApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'user' is set
-        if ('user' not in local_var_params or
-                local_var_params['user'] is None):
-            raise ValueError("Missing the required parameter `user` when calling `create_users_with_array_input`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `create_users_with_array_input`")  # noqa: E501
 
         collection_formats = {}
 
@@ -193,8 +193,8 @@ class UserApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'user' in local_var_params:
-            body_params = local_var_params['user']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # Authentication setting
         auth_settings = []  # noqa: E501
 
@@ -214,37 +214,37 @@ class UserApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def create_users_with_list_input(self, user, **kwargs):  # noqa: E501
+    def create_users_with_list_input(self, body, **kwargs):  # noqa: E501
         """Creates list of users with given input array  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_users_with_list_input(user, async_req=True)
+        >>> thread = api.create_users_with_list_input(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param list[User] user: List of user object (required)
+        :param list[User] body: List of user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.create_users_with_list_input_with_http_info(user, **kwargs)  # noqa: E501
+            return self.create_users_with_list_input_with_http_info(body, **kwargs)  # noqa: E501
         else:
-            (data) = self.create_users_with_list_input_with_http_info(user, **kwargs)  # noqa: E501
+            (data) = self.create_users_with_list_input_with_http_info(body, **kwargs)  # noqa: E501
             return data
 
-    def create_users_with_list_input_with_http_info(self, user, **kwargs):  # noqa: E501
+    def create_users_with_list_input_with_http_info(self, body, **kwargs):  # noqa: E501
         """Creates list of users with given input array  # noqa: E501
 
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.create_users_with_list_input_with_http_info(user, async_req=True)
+        >>> thread = api.create_users_with_list_input_with_http_info(body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
-        :param list[User] user: List of user object (required)
+        :param list[User] body: List of user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -252,7 +252,7 @@ class UserApi(object):
 
         local_var_params = locals()
 
-        all_params = ['user']  # noqa: E501
+        all_params = ['body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -266,10 +266,10 @@ class UserApi(object):
                 )
             local_var_params[key] = val
         del local_var_params['kwargs']
-        # verify the required parameter 'user' is set
-        if ('user' not in local_var_params or
-                local_var_params['user'] is None):
-            raise ValueError("Missing the required parameter `user` when calling `create_users_with_list_input`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `create_users_with_list_input`")  # noqa: E501
 
         collection_formats = {}
 
@@ -283,8 +283,8 @@ class UserApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'user' in local_var_params:
-            body_params = local_var_params['user']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # Authentication setting
         auth_settings = []  # noqa: E501
 
@@ -674,41 +674,41 @@ class UserApi(object):
             _request_timeout=local_var_params.get('_request_timeout'),
             collection_formats=collection_formats)
 
-    def update_user(self, username, user, **kwargs):  # noqa: E501
+    def update_user(self, username, body, **kwargs):  # noqa: E501
         """Updated user  # noqa: E501
 
         This can only be done by the logged in user.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.update_user(username, user, async_req=True)
+        >>> thread = api.update_user(username, body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
         :param str username: name that need to be deleted (required)
-        :param User user: Updated user object (required)
+        :param User body: Updated user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
         """
         kwargs['_return_http_data_only'] = True
         if kwargs.get('async_req'):
-            return self.update_user_with_http_info(username, user, **kwargs)  # noqa: E501
+            return self.update_user_with_http_info(username, body, **kwargs)  # noqa: E501
         else:
-            (data) = self.update_user_with_http_info(username, user, **kwargs)  # noqa: E501
+            (data) = self.update_user_with_http_info(username, body, **kwargs)  # noqa: E501
             return data
 
-    def update_user_with_http_info(self, username, user, **kwargs):  # noqa: E501
+    def update_user_with_http_info(self, username, body, **kwargs):  # noqa: E501
         """Updated user  # noqa: E501
 
         This can only be done by the logged in user.  # noqa: E501
         This method makes a synchronous HTTP request by default. To make an
         asynchronous HTTP request, please pass async_req=True
-        >>> thread = api.update_user_with_http_info(username, user, async_req=True)
+        >>> thread = api.update_user_with_http_info(username, body, async_req=True)
         >>> result = thread.get()
 
         :param async_req bool
         :param str username: name that need to be deleted (required)
-        :param User user: Updated user object (required)
+        :param User body: Updated user object (required)
         :return: None
                  If the method is called asynchronously,
                  returns the request thread.
@@ -716,7 +716,7 @@ class UserApi(object):
 
         local_var_params = locals()
 
-        all_params = ['username', 'user']  # noqa: E501
+        all_params = ['username', 'body']  # noqa: E501
         all_params.append('async_req')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -734,10 +734,10 @@ class UserApi(object):
         if ('username' not in local_var_params or
                 local_var_params['username'] is None):
             raise ValueError("Missing the required parameter `username` when calling `update_user`")  # noqa: E501
-        # verify the required parameter 'user' is set
-        if ('user' not in local_var_params or
-                local_var_params['user'] is None):
-            raise ValueError("Missing the required parameter `user` when calling `update_user`")  # noqa: E501
+        # verify the required parameter 'body' is set
+        if ('body' not in local_var_params or
+                local_var_params['body'] is None):
+            raise ValueError("Missing the required parameter `body` when calling `update_user`")  # noqa: E501
 
         collection_formats = {}
 
@@ -753,8 +753,8 @@ class UserApi(object):
         local_var_files = {}
 
         body_params = None
-        if 'user' in local_var_params:
-            body_params = local_var_params['user']
+        if 'body' in local_var_params:
+            body_params = local_var_params['body']
         # Authentication setting
         auth_settings = []  # noqa: E501
 
diff --git a/samples/client/petstore/python-tornado/petstore_api/models/__init__.py b/samples/client/petstore/python-tornado/petstore_api/models/__init__.py
index 393dec06333f15b66444790883caabf05c885df1..3a39467a63acff5d2207056eaff644a19cd87207 100644
--- a/samples/client/petstore/python-tornado/petstore_api/models/__init__.py
+++ b/samples/client/petstore/python-tornado/petstore_api/models/__init__.py
@@ -47,4 +47,7 @@ from petstore_api.models.pet import Pet
 from petstore_api.models.read_only_first import ReadOnlyFirst
 from petstore_api.models.special_model_name import SpecialModelName
 from petstore_api.models.tag import Tag
+from petstore_api.models.type_holder_default import TypeHolderDefault
+from petstore_api.models.type_holder_example import TypeHolderExample
 from petstore_api.models.user import User
+from petstore_api.models.xml_item import XmlItem
diff --git a/samples/client/petstore/python-tornado/petstore_api/models/animal.py b/samples/client/petstore/python-tornado/petstore_api/models/animal.py
index 5acccf50f7abf445ac27d284d99409318f9e712e..abd6f705e5e84c755f64291e4d19b80d0dc64c5c 100644
--- a/samples/client/petstore/python-tornado/petstore_api/models/animal.py
+++ b/samples/client/petstore/python-tornado/petstore_api/models/animal.py
@@ -50,7 +50,7 @@ class Animal(object):
 
         self._class_name = None
         self._color = None
-        self.discriminator = 'className'
+        self.discriminator = 'class_name'
 
         self.class_name = class_name
         if color is not None:
@@ -102,7 +102,8 @@ class Animal(object):
 
     def get_real_child_model(self, data):
         """Returns the real base class specified by the discriminator"""
-        discriminator_value = data[self.discriminator]
+        discriminator_key = self.attribute_map[self.discriminator]
+        discriminator_value = data[discriminator_key]
         return self.discriminator_value_class_map.get(discriminator_value)
 
     def to_dict(self):
diff --git a/samples/client/petstore/python-tornado/petstore_api/models/pet.py b/samples/client/petstore/python-tornado/petstore_api/models/pet.py
index d3c412f4a82b0bf40c59f62caff8a15d62bbda30..3183f60c797107523971b378c5e48dec07045a15 100644
--- a/samples/client/petstore/python-tornado/petstore_api/models/pet.py
+++ b/samples/client/petstore/python-tornado/petstore_api/models/pet.py
@@ -48,7 +48,7 @@ class Pet(object):
         'status': 'status'
     }
 
-    def __init__(self, id=None, category=None, name=None, photo_urls=None, tags=None, status=None):  # noqa: E501
+    def __init__(self, id=None, category=None, name='doggie', photo_urls=None, tags=None, status=None):  # noqa: E501
         """Pet - a model defined in OpenAPI"""  # noqa: E501
 
         self._id = None
diff --git a/samples/client/petstore/python-tornado/petstore_api/models/type_holder_default.py b/samples/client/petstore/python-tornado/petstore_api/models/type_holder_default.py
new file mode 100644
index 0000000000000000000000000000000000000000..a0566f5d5fe69c76318f872dab13f079ac44f031
--- /dev/null
+++ b/samples/client/petstore/python-tornado/petstore_api/models/type_holder_default.py
@@ -0,0 +1,221 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+import pprint
+import re  # noqa: F401
+
+import six
+
+
+class TypeHolderDefault(object):
+    """NOTE: This class is auto generated by OpenAPI Generator.
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    """
+    Attributes:
+      openapi_types (dict): The key is attribute name
+                            and the value is attribute type.
+      attribute_map (dict): The key is attribute name
+                            and the value is json key in definition.
+    """
+    openapi_types = {
+        'string_item': 'str',
+        'number_item': 'float',
+        'integer_item': 'int',
+        'bool_item': 'bool',
+        'array_item': 'list[int]'
+    }
+
+    attribute_map = {
+        'string_item': 'string_item',
+        'number_item': 'number_item',
+        'integer_item': 'integer_item',
+        'bool_item': 'bool_item',
+        'array_item': 'array_item'
+    }
+
+    def __init__(self, string_item='what', number_item=None, integer_item=None, bool_item=True, array_item=None):  # noqa: E501
+        """TypeHolderDefault - a model defined in OpenAPI"""  # noqa: E501
+
+        self._string_item = None
+        self._number_item = None
+        self._integer_item = None
+        self._bool_item = None
+        self._array_item = None
+        self.discriminator = None
+
+        self.string_item = string_item
+        self.number_item = number_item
+        self.integer_item = integer_item
+        self.bool_item = bool_item
+        self.array_item = array_item
+
+    @property
+    def string_item(self):
+        """Gets the string_item of this TypeHolderDefault.  # noqa: E501
+
+
+        :return: The string_item of this TypeHolderDefault.  # noqa: E501
+        :rtype: str
+        """
+        return self._string_item
+
+    @string_item.setter
+    def string_item(self, string_item):
+        """Sets the string_item of this TypeHolderDefault.
+
+
+        :param string_item: The string_item of this TypeHolderDefault.  # noqa: E501
+        :type: str
+        """
+        if string_item is None:
+            raise ValueError("Invalid value for `string_item`, must not be `None`")  # noqa: E501
+
+        self._string_item = string_item
+
+    @property
+    def number_item(self):
+        """Gets the number_item of this TypeHolderDefault.  # noqa: E501
+
+
+        :return: The number_item of this TypeHolderDefault.  # noqa: E501
+        :rtype: float
+        """
+        return self._number_item
+
+    @number_item.setter
+    def number_item(self, number_item):
+        """Sets the number_item of this TypeHolderDefault.
+
+
+        :param number_item: The number_item of this TypeHolderDefault.  # noqa: E501
+        :type: float
+        """
+        if number_item is None:
+            raise ValueError("Invalid value for `number_item`, must not be `None`")  # noqa: E501
+
+        self._number_item = number_item
+
+    @property
+    def integer_item(self):
+        """Gets the integer_item of this TypeHolderDefault.  # noqa: E501
+
+
+        :return: The integer_item of this TypeHolderDefault.  # noqa: E501
+        :rtype: int
+        """
+        return self._integer_item
+
+    @integer_item.setter
+    def integer_item(self, integer_item):
+        """Sets the integer_item of this TypeHolderDefault.
+
+
+        :param integer_item: The integer_item of this TypeHolderDefault.  # noqa: E501
+        :type: int
+        """
+        if integer_item is None:
+            raise ValueError("Invalid value for `integer_item`, must not be `None`")  # noqa: E501
+
+        self._integer_item = integer_item
+
+    @property
+    def bool_item(self):
+        """Gets the bool_item of this TypeHolderDefault.  # noqa: E501
+
+
+        :return: The bool_item of this TypeHolderDefault.  # noqa: E501
+        :rtype: bool
+        """
+        return self._bool_item
+
+    @bool_item.setter
+    def bool_item(self, bool_item):
+        """Sets the bool_item of this TypeHolderDefault.
+
+
+        :param bool_item: The bool_item of this TypeHolderDefault.  # noqa: E501
+        :type: bool
+        """
+        if bool_item is None:
+            raise ValueError("Invalid value for `bool_item`, must not be `None`")  # noqa: E501
+
+        self._bool_item = bool_item
+
+    @property
+    def array_item(self):
+        """Gets the array_item of this TypeHolderDefault.  # noqa: E501
+
+
+        :return: The array_item of this TypeHolderDefault.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._array_item
+
+    @array_item.setter
+    def array_item(self, array_item):
+        """Sets the array_item of this TypeHolderDefault.
+
+
+        :param array_item: The array_item of this TypeHolderDefault.  # noqa: E501
+        :type: list[int]
+        """
+        if array_item is None:
+            raise ValueError("Invalid value for `array_item`, must not be `None`")  # noqa: E501
+
+        self._array_item = array_item
+
+    def to_dict(self):
+        """Returns the model properties as a dict"""
+        result = {}
+
+        for attr, _ in six.iteritems(self.openapi_types):
+            value = getattr(self, attr)
+            if isinstance(value, list):
+                result[attr] = list(map(
+                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+                    value
+                ))
+            elif hasattr(value, "to_dict"):
+                result[attr] = value.to_dict()
+            elif isinstance(value, dict):
+                result[attr] = dict(map(
+                    lambda item: (item[0], item[1].to_dict())
+                    if hasattr(item[1], "to_dict") else item,
+                    value.items()
+                ))
+            else:
+                result[attr] = value
+
+        return result
+
+    def to_str(self):
+        """Returns the string representation of the model"""
+        return pprint.pformat(self.to_dict())
+
+    def __repr__(self):
+        """For `print` and `pprint`"""
+        return self.to_str()
+
+    def __eq__(self, other):
+        """Returns true if both objects are equal"""
+        if not isinstance(other, TypeHolderDefault):
+            return False
+
+        return self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        """Returns true if both objects are not equal"""
+        return not self == other
diff --git a/samples/client/petstore/python-tornado/petstore_api/models/type_holder_example.py b/samples/client/petstore/python-tornado/petstore_api/models/type_holder_example.py
new file mode 100644
index 0000000000000000000000000000000000000000..573354ab4d6e7d462c5f110077099774d1087646
--- /dev/null
+++ b/samples/client/petstore/python-tornado/petstore_api/models/type_holder_example.py
@@ -0,0 +1,221 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+import pprint
+import re  # noqa: F401
+
+import six
+
+
+class TypeHolderExample(object):
+    """NOTE: This class is auto generated by OpenAPI Generator.
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    """
+    Attributes:
+      openapi_types (dict): The key is attribute name
+                            and the value is attribute type.
+      attribute_map (dict): The key is attribute name
+                            and the value is json key in definition.
+    """
+    openapi_types = {
+        'string_item': 'str',
+        'number_item': 'float',
+        'integer_item': 'int',
+        'bool_item': 'bool',
+        'array_item': 'list[int]'
+    }
+
+    attribute_map = {
+        'string_item': 'string_item',
+        'number_item': 'number_item',
+        'integer_item': 'integer_item',
+        'bool_item': 'bool_item',
+        'array_item': 'array_item'
+    }
+
+    def __init__(self, string_item='what', number_item=1.234, integer_item=-2, bool_item=True, array_item=[0, 1, 2, 3]):  # noqa: E501
+        """TypeHolderExample - a model defined in OpenAPI"""  # noqa: E501
+
+        self._string_item = None
+        self._number_item = None
+        self._integer_item = None
+        self._bool_item = None
+        self._array_item = None
+        self.discriminator = None
+
+        self.string_item = string_item
+        self.number_item = number_item
+        self.integer_item = integer_item
+        self.bool_item = bool_item
+        self.array_item = array_item
+
+    @property
+    def string_item(self):
+        """Gets the string_item of this TypeHolderExample.  # noqa: E501
+
+
+        :return: The string_item of this TypeHolderExample.  # noqa: E501
+        :rtype: str
+        """
+        return self._string_item
+
+    @string_item.setter
+    def string_item(self, string_item):
+        """Sets the string_item of this TypeHolderExample.
+
+
+        :param string_item: The string_item of this TypeHolderExample.  # noqa: E501
+        :type: str
+        """
+        if string_item is None:
+            raise ValueError("Invalid value for `string_item`, must not be `None`")  # noqa: E501
+
+        self._string_item = string_item
+
+    @property
+    def number_item(self):
+        """Gets the number_item of this TypeHolderExample.  # noqa: E501
+
+
+        :return: The number_item of this TypeHolderExample.  # noqa: E501
+        :rtype: float
+        """
+        return self._number_item
+
+    @number_item.setter
+    def number_item(self, number_item):
+        """Sets the number_item of this TypeHolderExample.
+
+
+        :param number_item: The number_item of this TypeHolderExample.  # noqa: E501
+        :type: float
+        """
+        if number_item is None:
+            raise ValueError("Invalid value for `number_item`, must not be `None`")  # noqa: E501
+
+        self._number_item = number_item
+
+    @property
+    def integer_item(self):
+        """Gets the integer_item of this TypeHolderExample.  # noqa: E501
+
+
+        :return: The integer_item of this TypeHolderExample.  # noqa: E501
+        :rtype: int
+        """
+        return self._integer_item
+
+    @integer_item.setter
+    def integer_item(self, integer_item):
+        """Sets the integer_item of this TypeHolderExample.
+
+
+        :param integer_item: The integer_item of this TypeHolderExample.  # noqa: E501
+        :type: int
+        """
+        if integer_item is None:
+            raise ValueError("Invalid value for `integer_item`, must not be `None`")  # noqa: E501
+
+        self._integer_item = integer_item
+
+    @property
+    def bool_item(self):
+        """Gets the bool_item of this TypeHolderExample.  # noqa: E501
+
+
+        :return: The bool_item of this TypeHolderExample.  # noqa: E501
+        :rtype: bool
+        """
+        return self._bool_item
+
+    @bool_item.setter
+    def bool_item(self, bool_item):
+        """Sets the bool_item of this TypeHolderExample.
+
+
+        :param bool_item: The bool_item of this TypeHolderExample.  # noqa: E501
+        :type: bool
+        """
+        if bool_item is None:
+            raise ValueError("Invalid value for `bool_item`, must not be `None`")  # noqa: E501
+
+        self._bool_item = bool_item
+
+    @property
+    def array_item(self):
+        """Gets the array_item of this TypeHolderExample.  # noqa: E501
+
+
+        :return: The array_item of this TypeHolderExample.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._array_item
+
+    @array_item.setter
+    def array_item(self, array_item):
+        """Sets the array_item of this TypeHolderExample.
+
+
+        :param array_item: The array_item of this TypeHolderExample.  # noqa: E501
+        :type: list[int]
+        """
+        if array_item is None:
+            raise ValueError("Invalid value for `array_item`, must not be `None`")  # noqa: E501
+
+        self._array_item = array_item
+
+    def to_dict(self):
+        """Returns the model properties as a dict"""
+        result = {}
+
+        for attr, _ in six.iteritems(self.openapi_types):
+            value = getattr(self, attr)
+            if isinstance(value, list):
+                result[attr] = list(map(
+                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+                    value
+                ))
+            elif hasattr(value, "to_dict"):
+                result[attr] = value.to_dict()
+            elif isinstance(value, dict):
+                result[attr] = dict(map(
+                    lambda item: (item[0], item[1].to_dict())
+                    if hasattr(item[1], "to_dict") else item,
+                    value.items()
+                ))
+            else:
+                result[attr] = value
+
+        return result
+
+    def to_str(self):
+        """Returns the string representation of the model"""
+        return pprint.pformat(self.to_dict())
+
+    def __repr__(self):
+        """For `print` and `pprint`"""
+        return self.to_str()
+
+    def __eq__(self, other):
+        """Returns true if both objects are equal"""
+        if not isinstance(other, TypeHolderExample):
+            return False
+
+        return self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        """Returns true if both objects are not equal"""
+        return not self == other
diff --git a/samples/client/petstore/python-tornado/petstore_api/models/xml_item.py b/samples/client/petstore/python-tornado/petstore_api/models/xml_item.py
new file mode 100644
index 0000000000000000000000000000000000000000..28e6ff3767704f0def630c4fd989336834328a2c
--- /dev/null
+++ b/samples/client/petstore/python-tornado/petstore_api/models/xml_item.py
@@ -0,0 +1,840 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+import pprint
+import re  # noqa: F401
+
+import six
+
+
+class XmlItem(object):
+    """NOTE: This class is auto generated by OpenAPI Generator.
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    """
+    Attributes:
+      openapi_types (dict): The key is attribute name
+                            and the value is attribute type.
+      attribute_map (dict): The key is attribute name
+                            and the value is json key in definition.
+    """
+    openapi_types = {
+        'attribute_string': 'str',
+        'attribute_number': 'float',
+        'attribute_integer': 'int',
+        'attribute_boolean': 'bool',
+        'wrapped_array': 'list[int]',
+        'name_string': 'str',
+        'name_number': 'float',
+        'name_integer': 'int',
+        'name_boolean': 'bool',
+        'name_array': 'list[int]',
+        'name_wrapped_array': 'list[int]',
+        'prefix_string': 'str',
+        'prefix_number': 'float',
+        'prefix_integer': 'int',
+        'prefix_boolean': 'bool',
+        'prefix_array': 'list[int]',
+        'prefix_wrapped_array': 'list[int]',
+        'namespace_string': 'str',
+        'namespace_number': 'float',
+        'namespace_integer': 'int',
+        'namespace_boolean': 'bool',
+        'namespace_array': 'list[int]',
+        'namespace_wrapped_array': 'list[int]',
+        'prefix_ns_string': 'str',
+        'prefix_ns_number': 'float',
+        'prefix_ns_integer': 'int',
+        'prefix_ns_boolean': 'bool',
+        'prefix_ns_array': 'list[int]',
+        'prefix_ns_wrapped_array': 'list[int]'
+    }
+
+    attribute_map = {
+        'attribute_string': 'attribute_string',
+        'attribute_number': 'attribute_number',
+        'attribute_integer': 'attribute_integer',
+        'attribute_boolean': 'attribute_boolean',
+        'wrapped_array': 'wrapped_array',
+        'name_string': 'name_string',
+        'name_number': 'name_number',
+        'name_integer': 'name_integer',
+        'name_boolean': 'name_boolean',
+        'name_array': 'name_array',
+        'name_wrapped_array': 'name_wrapped_array',
+        'prefix_string': 'prefix_string',
+        'prefix_number': 'prefix_number',
+        'prefix_integer': 'prefix_integer',
+        'prefix_boolean': 'prefix_boolean',
+        'prefix_array': 'prefix_array',
+        'prefix_wrapped_array': 'prefix_wrapped_array',
+        'namespace_string': 'namespace_string',
+        'namespace_number': 'namespace_number',
+        'namespace_integer': 'namespace_integer',
+        'namespace_boolean': 'namespace_boolean',
+        'namespace_array': 'namespace_array',
+        'namespace_wrapped_array': 'namespace_wrapped_array',
+        'prefix_ns_string': 'prefix_ns_string',
+        'prefix_ns_number': 'prefix_ns_number',
+        'prefix_ns_integer': 'prefix_ns_integer',
+        'prefix_ns_boolean': 'prefix_ns_boolean',
+        'prefix_ns_array': 'prefix_ns_array',
+        'prefix_ns_wrapped_array': 'prefix_ns_wrapped_array'
+    }
+
+    def __init__(self, attribute_string='string', attribute_number=1.234, attribute_integer=-2, attribute_boolean=True, wrapped_array=None, name_string='string', name_number=1.234, name_integer=-2, name_boolean=True, name_array=None, name_wrapped_array=None, prefix_string='string', prefix_number=1.234, prefix_integer=-2, prefix_boolean=True, prefix_array=None, prefix_wrapped_array=None, namespace_string='string', namespace_number=1.234, namespace_integer=-2, namespace_boolean=True, namespace_array=None, namespace_wrapped_array=None, prefix_ns_string='string', prefix_ns_number=1.234, prefix_ns_integer=-2, prefix_ns_boolean=True, prefix_ns_array=None, prefix_ns_wrapped_array=None):  # noqa: E501
+        """XmlItem - a model defined in OpenAPI"""  # noqa: E501
+
+        self._attribute_string = None
+        self._attribute_number = None
+        self._attribute_integer = None
+        self._attribute_boolean = None
+        self._wrapped_array = None
+        self._name_string = None
+        self._name_number = None
+        self._name_integer = None
+        self._name_boolean = None
+        self._name_array = None
+        self._name_wrapped_array = None
+        self._prefix_string = None
+        self._prefix_number = None
+        self._prefix_integer = None
+        self._prefix_boolean = None
+        self._prefix_array = None
+        self._prefix_wrapped_array = None
+        self._namespace_string = None
+        self._namespace_number = None
+        self._namespace_integer = None
+        self._namespace_boolean = None
+        self._namespace_array = None
+        self._namespace_wrapped_array = None
+        self._prefix_ns_string = None
+        self._prefix_ns_number = None
+        self._prefix_ns_integer = None
+        self._prefix_ns_boolean = None
+        self._prefix_ns_array = None
+        self._prefix_ns_wrapped_array = None
+        self.discriminator = None
+
+        if attribute_string is not None:
+            self.attribute_string = attribute_string
+        if attribute_number is not None:
+            self.attribute_number = attribute_number
+        if attribute_integer is not None:
+            self.attribute_integer = attribute_integer
+        if attribute_boolean is not None:
+            self.attribute_boolean = attribute_boolean
+        if wrapped_array is not None:
+            self.wrapped_array = wrapped_array
+        if name_string is not None:
+            self.name_string = name_string
+        if name_number is not None:
+            self.name_number = name_number
+        if name_integer is not None:
+            self.name_integer = name_integer
+        if name_boolean is not None:
+            self.name_boolean = name_boolean
+        if name_array is not None:
+            self.name_array = name_array
+        if name_wrapped_array is not None:
+            self.name_wrapped_array = name_wrapped_array
+        if prefix_string is not None:
+            self.prefix_string = prefix_string
+        if prefix_number is not None:
+            self.prefix_number = prefix_number
+        if prefix_integer is not None:
+            self.prefix_integer = prefix_integer
+        if prefix_boolean is not None:
+            self.prefix_boolean = prefix_boolean
+        if prefix_array is not None:
+            self.prefix_array = prefix_array
+        if prefix_wrapped_array is not None:
+            self.prefix_wrapped_array = prefix_wrapped_array
+        if namespace_string is not None:
+            self.namespace_string = namespace_string
+        if namespace_number is not None:
+            self.namespace_number = namespace_number
+        if namespace_integer is not None:
+            self.namespace_integer = namespace_integer
+        if namespace_boolean is not None:
+            self.namespace_boolean = namespace_boolean
+        if namespace_array is not None:
+            self.namespace_array = namespace_array
+        if namespace_wrapped_array is not None:
+            self.namespace_wrapped_array = namespace_wrapped_array
+        if prefix_ns_string is not None:
+            self.prefix_ns_string = prefix_ns_string
+        if prefix_ns_number is not None:
+            self.prefix_ns_number = prefix_ns_number
+        if prefix_ns_integer is not None:
+            self.prefix_ns_integer = prefix_ns_integer
+        if prefix_ns_boolean is not None:
+            self.prefix_ns_boolean = prefix_ns_boolean
+        if prefix_ns_array is not None:
+            self.prefix_ns_array = prefix_ns_array
+        if prefix_ns_wrapped_array is not None:
+            self.prefix_ns_wrapped_array = prefix_ns_wrapped_array
+
+    @property
+    def attribute_string(self):
+        """Gets the attribute_string of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._attribute_string
+
+    @attribute_string.setter
+    def attribute_string(self, attribute_string):
+        """Sets the attribute_string of this XmlItem.
+
+
+        :param attribute_string: The attribute_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._attribute_string = attribute_string
+
+    @property
+    def attribute_number(self):
+        """Gets the attribute_number of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._attribute_number
+
+    @attribute_number.setter
+    def attribute_number(self, attribute_number):
+        """Sets the attribute_number of this XmlItem.
+
+
+        :param attribute_number: The attribute_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._attribute_number = attribute_number
+
+    @property
+    def attribute_integer(self):
+        """Gets the attribute_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._attribute_integer
+
+    @attribute_integer.setter
+    def attribute_integer(self, attribute_integer):
+        """Sets the attribute_integer of this XmlItem.
+
+
+        :param attribute_integer: The attribute_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._attribute_integer = attribute_integer
+
+    @property
+    def attribute_boolean(self):
+        """Gets the attribute_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._attribute_boolean
+
+    @attribute_boolean.setter
+    def attribute_boolean(self, attribute_boolean):
+        """Sets the attribute_boolean of this XmlItem.
+
+
+        :param attribute_boolean: The attribute_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._attribute_boolean = attribute_boolean
+
+    @property
+    def wrapped_array(self):
+        """Gets the wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._wrapped_array
+
+    @wrapped_array.setter
+    def wrapped_array(self, wrapped_array):
+        """Sets the wrapped_array of this XmlItem.
+
+
+        :param wrapped_array: The wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._wrapped_array = wrapped_array
+
+    @property
+    def name_string(self):
+        """Gets the name_string of this XmlItem.  # noqa: E501
+
+
+        :return: The name_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._name_string
+
+    @name_string.setter
+    def name_string(self, name_string):
+        """Sets the name_string of this XmlItem.
+
+
+        :param name_string: The name_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._name_string = name_string
+
+    @property
+    def name_number(self):
+        """Gets the name_number of this XmlItem.  # noqa: E501
+
+
+        :return: The name_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._name_number
+
+    @name_number.setter
+    def name_number(self, name_number):
+        """Sets the name_number of this XmlItem.
+
+
+        :param name_number: The name_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._name_number = name_number
+
+    @property
+    def name_integer(self):
+        """Gets the name_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The name_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._name_integer
+
+    @name_integer.setter
+    def name_integer(self, name_integer):
+        """Sets the name_integer of this XmlItem.
+
+
+        :param name_integer: The name_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._name_integer = name_integer
+
+    @property
+    def name_boolean(self):
+        """Gets the name_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The name_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._name_boolean
+
+    @name_boolean.setter
+    def name_boolean(self, name_boolean):
+        """Sets the name_boolean of this XmlItem.
+
+
+        :param name_boolean: The name_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._name_boolean = name_boolean
+
+    @property
+    def name_array(self):
+        """Gets the name_array of this XmlItem.  # noqa: E501
+
+
+        :return: The name_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._name_array
+
+    @name_array.setter
+    def name_array(self, name_array):
+        """Sets the name_array of this XmlItem.
+
+
+        :param name_array: The name_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._name_array = name_array
+
+    @property
+    def name_wrapped_array(self):
+        """Gets the name_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The name_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._name_wrapped_array
+
+    @name_wrapped_array.setter
+    def name_wrapped_array(self, name_wrapped_array):
+        """Sets the name_wrapped_array of this XmlItem.
+
+
+        :param name_wrapped_array: The name_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._name_wrapped_array = name_wrapped_array
+
+    @property
+    def prefix_string(self):
+        """Gets the prefix_string of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._prefix_string
+
+    @prefix_string.setter
+    def prefix_string(self, prefix_string):
+        """Sets the prefix_string of this XmlItem.
+
+
+        :param prefix_string: The prefix_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._prefix_string = prefix_string
+
+    @property
+    def prefix_number(self):
+        """Gets the prefix_number of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._prefix_number
+
+    @prefix_number.setter
+    def prefix_number(self, prefix_number):
+        """Sets the prefix_number of this XmlItem.
+
+
+        :param prefix_number: The prefix_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._prefix_number = prefix_number
+
+    @property
+    def prefix_integer(self):
+        """Gets the prefix_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._prefix_integer
+
+    @prefix_integer.setter
+    def prefix_integer(self, prefix_integer):
+        """Sets the prefix_integer of this XmlItem.
+
+
+        :param prefix_integer: The prefix_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._prefix_integer = prefix_integer
+
+    @property
+    def prefix_boolean(self):
+        """Gets the prefix_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._prefix_boolean
+
+    @prefix_boolean.setter
+    def prefix_boolean(self, prefix_boolean):
+        """Sets the prefix_boolean of this XmlItem.
+
+
+        :param prefix_boolean: The prefix_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._prefix_boolean = prefix_boolean
+
+    @property
+    def prefix_array(self):
+        """Gets the prefix_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_array
+
+    @prefix_array.setter
+    def prefix_array(self, prefix_array):
+        """Sets the prefix_array of this XmlItem.
+
+
+        :param prefix_array: The prefix_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_array = prefix_array
+
+    @property
+    def prefix_wrapped_array(self):
+        """Gets the prefix_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_wrapped_array
+
+    @prefix_wrapped_array.setter
+    def prefix_wrapped_array(self, prefix_wrapped_array):
+        """Sets the prefix_wrapped_array of this XmlItem.
+
+
+        :param prefix_wrapped_array: The prefix_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_wrapped_array = prefix_wrapped_array
+
+    @property
+    def namespace_string(self):
+        """Gets the namespace_string of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._namespace_string
+
+    @namespace_string.setter
+    def namespace_string(self, namespace_string):
+        """Sets the namespace_string of this XmlItem.
+
+
+        :param namespace_string: The namespace_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._namespace_string = namespace_string
+
+    @property
+    def namespace_number(self):
+        """Gets the namespace_number of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._namespace_number
+
+    @namespace_number.setter
+    def namespace_number(self, namespace_number):
+        """Sets the namespace_number of this XmlItem.
+
+
+        :param namespace_number: The namespace_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._namespace_number = namespace_number
+
+    @property
+    def namespace_integer(self):
+        """Gets the namespace_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._namespace_integer
+
+    @namespace_integer.setter
+    def namespace_integer(self, namespace_integer):
+        """Sets the namespace_integer of this XmlItem.
+
+
+        :param namespace_integer: The namespace_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._namespace_integer = namespace_integer
+
+    @property
+    def namespace_boolean(self):
+        """Gets the namespace_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._namespace_boolean
+
+    @namespace_boolean.setter
+    def namespace_boolean(self, namespace_boolean):
+        """Sets the namespace_boolean of this XmlItem.
+
+
+        :param namespace_boolean: The namespace_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._namespace_boolean = namespace_boolean
+
+    @property
+    def namespace_array(self):
+        """Gets the namespace_array of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._namespace_array
+
+    @namespace_array.setter
+    def namespace_array(self, namespace_array):
+        """Sets the namespace_array of this XmlItem.
+
+
+        :param namespace_array: The namespace_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._namespace_array = namespace_array
+
+    @property
+    def namespace_wrapped_array(self):
+        """Gets the namespace_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._namespace_wrapped_array
+
+    @namespace_wrapped_array.setter
+    def namespace_wrapped_array(self, namespace_wrapped_array):
+        """Sets the namespace_wrapped_array of this XmlItem.
+
+
+        :param namespace_wrapped_array: The namespace_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._namespace_wrapped_array = namespace_wrapped_array
+
+    @property
+    def prefix_ns_string(self):
+        """Gets the prefix_ns_string of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._prefix_ns_string
+
+    @prefix_ns_string.setter
+    def prefix_ns_string(self, prefix_ns_string):
+        """Sets the prefix_ns_string of this XmlItem.
+
+
+        :param prefix_ns_string: The prefix_ns_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._prefix_ns_string = prefix_ns_string
+
+    @property
+    def prefix_ns_number(self):
+        """Gets the prefix_ns_number of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._prefix_ns_number
+
+    @prefix_ns_number.setter
+    def prefix_ns_number(self, prefix_ns_number):
+        """Sets the prefix_ns_number of this XmlItem.
+
+
+        :param prefix_ns_number: The prefix_ns_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._prefix_ns_number = prefix_ns_number
+
+    @property
+    def prefix_ns_integer(self):
+        """Gets the prefix_ns_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._prefix_ns_integer
+
+    @prefix_ns_integer.setter
+    def prefix_ns_integer(self, prefix_ns_integer):
+        """Sets the prefix_ns_integer of this XmlItem.
+
+
+        :param prefix_ns_integer: The prefix_ns_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._prefix_ns_integer = prefix_ns_integer
+
+    @property
+    def prefix_ns_boolean(self):
+        """Gets the prefix_ns_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._prefix_ns_boolean
+
+    @prefix_ns_boolean.setter
+    def prefix_ns_boolean(self, prefix_ns_boolean):
+        """Sets the prefix_ns_boolean of this XmlItem.
+
+
+        :param prefix_ns_boolean: The prefix_ns_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._prefix_ns_boolean = prefix_ns_boolean
+
+    @property
+    def prefix_ns_array(self):
+        """Gets the prefix_ns_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_ns_array
+
+    @prefix_ns_array.setter
+    def prefix_ns_array(self, prefix_ns_array):
+        """Sets the prefix_ns_array of this XmlItem.
+
+
+        :param prefix_ns_array: The prefix_ns_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_ns_array = prefix_ns_array
+
+    @property
+    def prefix_ns_wrapped_array(self):
+        """Gets the prefix_ns_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_ns_wrapped_array
+
+    @prefix_ns_wrapped_array.setter
+    def prefix_ns_wrapped_array(self, prefix_ns_wrapped_array):
+        """Sets the prefix_ns_wrapped_array of this XmlItem.
+
+
+        :param prefix_ns_wrapped_array: The prefix_ns_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_ns_wrapped_array = prefix_ns_wrapped_array
+
+    def to_dict(self):
+        """Returns the model properties as a dict"""
+        result = {}
+
+        for attr, _ in six.iteritems(self.openapi_types):
+            value = getattr(self, attr)
+            if isinstance(value, list):
+                result[attr] = list(map(
+                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+                    value
+                ))
+            elif hasattr(value, "to_dict"):
+                result[attr] = value.to_dict()
+            elif isinstance(value, dict):
+                result[attr] = dict(map(
+                    lambda item: (item[0], item[1].to_dict())
+                    if hasattr(item[1], "to_dict") else item,
+                    value.items()
+                ))
+            else:
+                result[attr] = value
+
+        return result
+
+    def to_str(self):
+        """Returns the string representation of the model"""
+        return pprint.pformat(self.to_dict())
+
+    def __repr__(self):
+        """For `print` and `pprint`"""
+        return self.to_str()
+
+    def __eq__(self, other):
+        """Returns true if both objects are equal"""
+        if not isinstance(other, XmlItem):
+            return False
+
+        return self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        """Returns true if both objects are not equal"""
+        return not self == other
diff --git a/samples/client/petstore/python-tornado/test/test_type_holder_default.py b/samples/client/petstore/python-tornado/test/test_type_holder_default.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a07afa6860462e786d3da024b9ce89298c9f2bc
--- /dev/null
+++ b/samples/client/petstore/python-tornado/test/test_type_holder_default.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.type_holder_default import TypeHolderDefault  # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestTypeHolderDefault(unittest.TestCase):
+    """TypeHolderDefault unit test stubs"""
+
+    def setUp(self):
+        pass
+
+    def tearDown(self):
+        pass
+
+    def testTypeHolderDefault(self):
+        """Test TypeHolderDefault"""
+        # FIXME: construct object with mandatory attributes with example values
+        # model = petstore_api.models.type_holder_default.TypeHolderDefault()  # noqa: E501
+        pass
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/samples/client/petstore/python-tornado/test/test_type_holder_example.py b/samples/client/petstore/python-tornado/test/test_type_holder_example.py
new file mode 100644
index 0000000000000000000000000000000000000000..7a262149485787cb4df70965e35a64953a20b52b
--- /dev/null
+++ b/samples/client/petstore/python-tornado/test/test_type_holder_example.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.type_holder_example import TypeHolderExample  # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestTypeHolderExample(unittest.TestCase):
+    """TypeHolderExample unit test stubs"""
+
+    def setUp(self):
+        pass
+
+    def tearDown(self):
+        pass
+
+    def testTypeHolderExample(self):
+        """Test TypeHolderExample"""
+        # FIXME: construct object with mandatory attributes with example values
+        # model = petstore_api.models.type_holder_example.TypeHolderExample()  # noqa: E501
+        pass
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/samples/client/petstore/python-tornado/test/test_xml_item.py b/samples/client/petstore/python-tornado/test/test_xml_item.py
new file mode 100644
index 0000000000000000000000000000000000000000..121f1ccb66235496840e244f3d3d23dbecb5f22d
--- /dev/null
+++ b/samples/client/petstore/python-tornado/test/test_xml_item.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.xml_item import XmlItem  # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestXmlItem(unittest.TestCase):
+    """XmlItem unit test stubs"""
+
+    def setUp(self):
+        pass
+
+    def tearDown(self):
+        pass
+
+    def testXmlItem(self):
+        """Test XmlItem"""
+        # FIXME: construct object with mandatory attributes with example values
+        # model = petstore_api.models.xml_item.XmlItem()  # noqa: E501
+        pass
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/samples/client/petstore/python/README.md b/samples/client/petstore/python/README.md
index 865a13a5508b8de8c8b4833cab5485acef3088fd..218749c0433bc02c5b762b0ff4e58f1fa1926572 100644
--- a/samples/client/petstore/python/README.md
+++ b/samples/client/petstore/python/README.md
@@ -71,6 +71,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 Class | Method | HTTP request | Description
 ------------ | ------------- | ------------- | -------------
 *AnotherFakeApi* | [**call_123_test_special_tags**](docs/AnotherFakeApi.md#call_123_test_special_tags) | **PATCH** /another-fake/dummy | To test special tags
+*FakeApi* | [**create_xml_item**](docs/FakeApi.md#create_xml_item) | **POST** /fake/create_xml_item | creates an XmlItem
 *FakeApi* | [**fake_outer_boolean_serialize**](docs/FakeApi.md#fake_outer_boolean_serialize) | **POST** /fake/outer/boolean | 
 *FakeApi* | [**fake_outer_composite_serialize**](docs/FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite | 
 *FakeApi* | [**fake_outer_number_serialize**](docs/FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number | 
@@ -145,6 +146,7 @@ Class | Method | HTTP request | Description
  - [TypeHolderDefault](docs/TypeHolderDefault.md)
  - [TypeHolderExample](docs/TypeHolderExample.md)
  - [User](docs/User.md)
+ - [XmlItem](docs/XmlItem.md)
 
 
 ## Documentation For Authorization
diff --git a/samples/client/petstore/python/docs/FakeApi.md b/samples/client/petstore/python/docs/FakeApi.md
index 0179be2f3d423c3a5c8ee9d5edb2449298c5e82a..d504255dd4007516a0ada2344040c45291fd463f 100644
--- a/samples/client/petstore/python/docs/FakeApi.md
+++ b/samples/client/petstore/python/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**create_xml_item**](FakeApi.md#create_xml_item) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fake_outer_boolean_serialize**](FakeApi.md#fake_outer_boolean_serialize) | **POST** /fake/outer/boolean | 
 [**fake_outer_composite_serialize**](FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite | 
 [**fake_outer_number_serialize**](FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,53 @@ Method | HTTP request | Description
 [**test_json_form_data**](FakeApi.md#test_json_form_data) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+# **create_xml_item**
+> create_xml_item(xml_item)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+xml_item = petstore_api.XmlItem() # XmlItem | XmlItem Body
+
+try:
+    # creates an XmlItem
+    api_instance.create_xml_item(xml_item)
+except ApiException as e:
+    print("Exception when calling FakeApi->create_xml_item: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xml_item** | [**XmlItem**](XmlItem.md)| XmlItem Body | 
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
 # **fake_outer_boolean_serialize**
 > bool fake_outer_boolean_serialize(body=body)
 
diff --git a/samples/client/petstore/python/docs/XmlItem.md b/samples/client/petstore/python/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..929e09ef5294dac857b0c3e4a7ddcd1f3dec88ba
--- /dev/null
+++ b/samples/client/petstore/python/docs/XmlItem.md
@@ -0,0 +1,38 @@
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute_string** | **str** |  | [optional] [default to 'string']
+**attribute_number** | **float** |  | [optional] [default to 1.234]
+**attribute_integer** | **int** |  | [optional] [default to -2]
+**attribute_boolean** | **bool** |  | [optional] [default to True]
+**wrapped_array** | **list[int]** |  | [optional] 
+**name_string** | **str** |  | [optional] [default to 'string']
+**name_number** | **float** |  | [optional] [default to 1.234]
+**name_integer** | **int** |  | [optional] [default to -2]
+**name_boolean** | **bool** |  | [optional] [default to True]
+**name_array** | **list[int]** |  | [optional] 
+**name_wrapped_array** | **list[int]** |  | [optional] 
+**prefix_string** | **str** |  | [optional] [default to 'string']
+**prefix_number** | **float** |  | [optional] [default to 1.234]
+**prefix_integer** | **int** |  | [optional] [default to -2]
+**prefix_boolean** | **bool** |  | [optional] [default to True]
+**prefix_array** | **list[int]** |  | [optional] 
+**prefix_wrapped_array** | **list[int]** |  | [optional] 
+**namespace_string** | **str** |  | [optional] [default to 'string']
+**namespace_number** | **float** |  | [optional] [default to 1.234]
+**namespace_integer** | **int** |  | [optional] [default to -2]
+**namespace_boolean** | **bool** |  | [optional] [default to True]
+**namespace_array** | **list[int]** |  | [optional] 
+**namespace_wrapped_array** | **list[int]** |  | [optional] 
+**prefix_ns_string** | **str** |  | [optional] [default to 'string']
+**prefix_ns_number** | **float** |  | [optional] [default to 1.234]
+**prefix_ns_integer** | **int** |  | [optional] [default to -2]
+**prefix_ns_boolean** | **bool** |  | [optional] [default to True]
+**prefix_ns_array** | **list[int]** |  | [optional] 
+**prefix_ns_wrapped_array** | **list[int]** |  | [optional] 
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/client/petstore/python/petstore_api/__init__.py b/samples/client/petstore/python/petstore_api/__init__.py
index 3e09d89174c5a4cf67fcb77de84cd6e7b01ded5e..cf9b1b0db3f981f63a6ccf01d74b9644766e58ab 100644
--- a/samples/client/petstore/python/petstore_api/__init__.py
+++ b/samples/client/petstore/python/petstore_api/__init__.py
@@ -64,3 +64,4 @@ from petstore_api.models.tag import Tag
 from petstore_api.models.type_holder_default import TypeHolderDefault
 from petstore_api.models.type_holder_example import TypeHolderExample
 from petstore_api.models.user import User
+from petstore_api.models.xml_item import XmlItem
diff --git a/samples/client/petstore/python/petstore_api/api/fake_api.py b/samples/client/petstore/python/petstore_api/api/fake_api.py
index e9401073dde4a18a8d5823b28b8590050f002ada..c7405e51c38100e8cce59314aaa0d186ec47a27a 100644
--- a/samples/client/petstore/python/petstore_api/api/fake_api.py
+++ b/samples/client/petstore/python/petstore_api/api/fake_api.py
@@ -32,6 +32,102 @@ class FakeApi(object):
             api_client = ApiClient()
         self.api_client = api_client
 
+    def create_xml_item(self, xml_item, **kwargs):  # noqa: E501
+        """creates an XmlItem  # noqa: E501
+
+        this route creates an XmlItem  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+        >>> thread = api.create_xml_item(xml_item, async_req=True)
+        >>> result = thread.get()
+
+        :param async_req bool
+        :param XmlItem xml_item: XmlItem Body (required)
+        :return: None
+                 If the method is called asynchronously,
+                 returns the request thread.
+        """
+        kwargs['_return_http_data_only'] = True
+        if kwargs.get('async_req'):
+            return self.create_xml_item_with_http_info(xml_item, **kwargs)  # noqa: E501
+        else:
+            (data) = self.create_xml_item_with_http_info(xml_item, **kwargs)  # noqa: E501
+            return data
+
+    def create_xml_item_with_http_info(self, xml_item, **kwargs):  # noqa: E501
+        """creates an XmlItem  # noqa: E501
+
+        this route creates an XmlItem  # noqa: E501
+        This method makes a synchronous HTTP request by default. To make an
+        asynchronous HTTP request, please pass async_req=True
+        >>> thread = api.create_xml_item_with_http_info(xml_item, async_req=True)
+        >>> result = thread.get()
+
+        :param async_req bool
+        :param XmlItem xml_item: XmlItem Body (required)
+        :return: None
+                 If the method is called asynchronously,
+                 returns the request thread.
+        """
+
+        local_var_params = locals()
+
+        all_params = ['xml_item']  # noqa: E501
+        all_params.append('async_req')
+        all_params.append('_return_http_data_only')
+        all_params.append('_preload_content')
+        all_params.append('_request_timeout')
+
+        for key, val in six.iteritems(local_var_params['kwargs']):
+            if key not in all_params:
+                raise TypeError(
+                    "Got an unexpected keyword argument '%s'"
+                    " to method create_xml_item" % key
+                )
+            local_var_params[key] = val
+        del local_var_params['kwargs']
+        # verify the required parameter 'xml_item' is set
+        if ('xml_item' not in local_var_params or
+                local_var_params['xml_item'] is None):
+            raise ValueError("Missing the required parameter `xml_item` when calling `create_xml_item`")  # noqa: E501
+
+        collection_formats = {}
+
+        path_params = {}
+
+        query_params = []
+
+        header_params = {}
+
+        form_params = []
+        local_var_files = {}
+
+        body_params = None
+        if 'xml_item' in local_var_params:
+            body_params = local_var_params['xml_item']
+        # HTTP header `Content-Type`
+        header_params['Content-Type'] = self.api_client.select_header_content_type(  # noqa: E501
+            ['application/xml', 'application/xml; charset=utf-8', 'application/xml; charset=utf-16', 'text/xml', 'text/xml; charset=utf-8', 'text/xml; charset=utf-16'])  # noqa: E501
+
+        # Authentication setting
+        auth_settings = []  # noqa: E501
+
+        return self.api_client.call_api(
+            '/fake/create_xml_item', 'POST',
+            path_params,
+            query_params,
+            header_params,
+            body=body_params,
+            post_params=form_params,
+            files=local_var_files,
+            response_type=None,  # noqa: E501
+            auth_settings=auth_settings,
+            async_req=local_var_params.get('async_req'),
+            _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
+            _preload_content=local_var_params.get('_preload_content', True),
+            _request_timeout=local_var_params.get('_request_timeout'),
+            collection_formats=collection_formats)
+
     def fake_outer_boolean_serialize(self, **kwargs):  # noqa: E501
         """fake_outer_boolean_serialize  # noqa: E501
 
diff --git a/samples/client/petstore/python/petstore_api/models/__init__.py b/samples/client/petstore/python/petstore_api/models/__init__.py
index a2a081ff44360e25197e1d3b7113ff89da71c2a6..3a39467a63acff5d2207056eaff644a19cd87207 100644
--- a/samples/client/petstore/python/petstore_api/models/__init__.py
+++ b/samples/client/petstore/python/petstore_api/models/__init__.py
@@ -50,3 +50,4 @@ from petstore_api.models.tag import Tag
 from petstore_api.models.type_holder_default import TypeHolderDefault
 from petstore_api.models.type_holder_example import TypeHolderExample
 from petstore_api.models.user import User
+from petstore_api.models.xml_item import XmlItem
diff --git a/samples/client/petstore/python/petstore_api/models/xml_item.py b/samples/client/petstore/python/petstore_api/models/xml_item.py
new file mode 100644
index 0000000000000000000000000000000000000000..28e6ff3767704f0def630c4fd989336834328a2c
--- /dev/null
+++ b/samples/client/petstore/python/petstore_api/models/xml_item.py
@@ -0,0 +1,840 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+import pprint
+import re  # noqa: F401
+
+import six
+
+
+class XmlItem(object):
+    """NOTE: This class is auto generated by OpenAPI Generator.
+    Ref: https://openapi-generator.tech
+
+    Do not edit the class manually.
+    """
+
+    """
+    Attributes:
+      openapi_types (dict): The key is attribute name
+                            and the value is attribute type.
+      attribute_map (dict): The key is attribute name
+                            and the value is json key in definition.
+    """
+    openapi_types = {
+        'attribute_string': 'str',
+        'attribute_number': 'float',
+        'attribute_integer': 'int',
+        'attribute_boolean': 'bool',
+        'wrapped_array': 'list[int]',
+        'name_string': 'str',
+        'name_number': 'float',
+        'name_integer': 'int',
+        'name_boolean': 'bool',
+        'name_array': 'list[int]',
+        'name_wrapped_array': 'list[int]',
+        'prefix_string': 'str',
+        'prefix_number': 'float',
+        'prefix_integer': 'int',
+        'prefix_boolean': 'bool',
+        'prefix_array': 'list[int]',
+        'prefix_wrapped_array': 'list[int]',
+        'namespace_string': 'str',
+        'namespace_number': 'float',
+        'namespace_integer': 'int',
+        'namespace_boolean': 'bool',
+        'namespace_array': 'list[int]',
+        'namespace_wrapped_array': 'list[int]',
+        'prefix_ns_string': 'str',
+        'prefix_ns_number': 'float',
+        'prefix_ns_integer': 'int',
+        'prefix_ns_boolean': 'bool',
+        'prefix_ns_array': 'list[int]',
+        'prefix_ns_wrapped_array': 'list[int]'
+    }
+
+    attribute_map = {
+        'attribute_string': 'attribute_string',
+        'attribute_number': 'attribute_number',
+        'attribute_integer': 'attribute_integer',
+        'attribute_boolean': 'attribute_boolean',
+        'wrapped_array': 'wrapped_array',
+        'name_string': 'name_string',
+        'name_number': 'name_number',
+        'name_integer': 'name_integer',
+        'name_boolean': 'name_boolean',
+        'name_array': 'name_array',
+        'name_wrapped_array': 'name_wrapped_array',
+        'prefix_string': 'prefix_string',
+        'prefix_number': 'prefix_number',
+        'prefix_integer': 'prefix_integer',
+        'prefix_boolean': 'prefix_boolean',
+        'prefix_array': 'prefix_array',
+        'prefix_wrapped_array': 'prefix_wrapped_array',
+        'namespace_string': 'namespace_string',
+        'namespace_number': 'namespace_number',
+        'namespace_integer': 'namespace_integer',
+        'namespace_boolean': 'namespace_boolean',
+        'namespace_array': 'namespace_array',
+        'namespace_wrapped_array': 'namespace_wrapped_array',
+        'prefix_ns_string': 'prefix_ns_string',
+        'prefix_ns_number': 'prefix_ns_number',
+        'prefix_ns_integer': 'prefix_ns_integer',
+        'prefix_ns_boolean': 'prefix_ns_boolean',
+        'prefix_ns_array': 'prefix_ns_array',
+        'prefix_ns_wrapped_array': 'prefix_ns_wrapped_array'
+    }
+
+    def __init__(self, attribute_string='string', attribute_number=1.234, attribute_integer=-2, attribute_boolean=True, wrapped_array=None, name_string='string', name_number=1.234, name_integer=-2, name_boolean=True, name_array=None, name_wrapped_array=None, prefix_string='string', prefix_number=1.234, prefix_integer=-2, prefix_boolean=True, prefix_array=None, prefix_wrapped_array=None, namespace_string='string', namespace_number=1.234, namespace_integer=-2, namespace_boolean=True, namespace_array=None, namespace_wrapped_array=None, prefix_ns_string='string', prefix_ns_number=1.234, prefix_ns_integer=-2, prefix_ns_boolean=True, prefix_ns_array=None, prefix_ns_wrapped_array=None):  # noqa: E501
+        """XmlItem - a model defined in OpenAPI"""  # noqa: E501
+
+        self._attribute_string = None
+        self._attribute_number = None
+        self._attribute_integer = None
+        self._attribute_boolean = None
+        self._wrapped_array = None
+        self._name_string = None
+        self._name_number = None
+        self._name_integer = None
+        self._name_boolean = None
+        self._name_array = None
+        self._name_wrapped_array = None
+        self._prefix_string = None
+        self._prefix_number = None
+        self._prefix_integer = None
+        self._prefix_boolean = None
+        self._prefix_array = None
+        self._prefix_wrapped_array = None
+        self._namespace_string = None
+        self._namespace_number = None
+        self._namespace_integer = None
+        self._namespace_boolean = None
+        self._namespace_array = None
+        self._namespace_wrapped_array = None
+        self._prefix_ns_string = None
+        self._prefix_ns_number = None
+        self._prefix_ns_integer = None
+        self._prefix_ns_boolean = None
+        self._prefix_ns_array = None
+        self._prefix_ns_wrapped_array = None
+        self.discriminator = None
+
+        if attribute_string is not None:
+            self.attribute_string = attribute_string
+        if attribute_number is not None:
+            self.attribute_number = attribute_number
+        if attribute_integer is not None:
+            self.attribute_integer = attribute_integer
+        if attribute_boolean is not None:
+            self.attribute_boolean = attribute_boolean
+        if wrapped_array is not None:
+            self.wrapped_array = wrapped_array
+        if name_string is not None:
+            self.name_string = name_string
+        if name_number is not None:
+            self.name_number = name_number
+        if name_integer is not None:
+            self.name_integer = name_integer
+        if name_boolean is not None:
+            self.name_boolean = name_boolean
+        if name_array is not None:
+            self.name_array = name_array
+        if name_wrapped_array is not None:
+            self.name_wrapped_array = name_wrapped_array
+        if prefix_string is not None:
+            self.prefix_string = prefix_string
+        if prefix_number is not None:
+            self.prefix_number = prefix_number
+        if prefix_integer is not None:
+            self.prefix_integer = prefix_integer
+        if prefix_boolean is not None:
+            self.prefix_boolean = prefix_boolean
+        if prefix_array is not None:
+            self.prefix_array = prefix_array
+        if prefix_wrapped_array is not None:
+            self.prefix_wrapped_array = prefix_wrapped_array
+        if namespace_string is not None:
+            self.namespace_string = namespace_string
+        if namespace_number is not None:
+            self.namespace_number = namespace_number
+        if namespace_integer is not None:
+            self.namespace_integer = namespace_integer
+        if namespace_boolean is not None:
+            self.namespace_boolean = namespace_boolean
+        if namespace_array is not None:
+            self.namespace_array = namespace_array
+        if namespace_wrapped_array is not None:
+            self.namespace_wrapped_array = namespace_wrapped_array
+        if prefix_ns_string is not None:
+            self.prefix_ns_string = prefix_ns_string
+        if prefix_ns_number is not None:
+            self.prefix_ns_number = prefix_ns_number
+        if prefix_ns_integer is not None:
+            self.prefix_ns_integer = prefix_ns_integer
+        if prefix_ns_boolean is not None:
+            self.prefix_ns_boolean = prefix_ns_boolean
+        if prefix_ns_array is not None:
+            self.prefix_ns_array = prefix_ns_array
+        if prefix_ns_wrapped_array is not None:
+            self.prefix_ns_wrapped_array = prefix_ns_wrapped_array
+
+    @property
+    def attribute_string(self):
+        """Gets the attribute_string of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._attribute_string
+
+    @attribute_string.setter
+    def attribute_string(self, attribute_string):
+        """Sets the attribute_string of this XmlItem.
+
+
+        :param attribute_string: The attribute_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._attribute_string = attribute_string
+
+    @property
+    def attribute_number(self):
+        """Gets the attribute_number of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._attribute_number
+
+    @attribute_number.setter
+    def attribute_number(self, attribute_number):
+        """Sets the attribute_number of this XmlItem.
+
+
+        :param attribute_number: The attribute_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._attribute_number = attribute_number
+
+    @property
+    def attribute_integer(self):
+        """Gets the attribute_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._attribute_integer
+
+    @attribute_integer.setter
+    def attribute_integer(self, attribute_integer):
+        """Sets the attribute_integer of this XmlItem.
+
+
+        :param attribute_integer: The attribute_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._attribute_integer = attribute_integer
+
+    @property
+    def attribute_boolean(self):
+        """Gets the attribute_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The attribute_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._attribute_boolean
+
+    @attribute_boolean.setter
+    def attribute_boolean(self, attribute_boolean):
+        """Sets the attribute_boolean of this XmlItem.
+
+
+        :param attribute_boolean: The attribute_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._attribute_boolean = attribute_boolean
+
+    @property
+    def wrapped_array(self):
+        """Gets the wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._wrapped_array
+
+    @wrapped_array.setter
+    def wrapped_array(self, wrapped_array):
+        """Sets the wrapped_array of this XmlItem.
+
+
+        :param wrapped_array: The wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._wrapped_array = wrapped_array
+
+    @property
+    def name_string(self):
+        """Gets the name_string of this XmlItem.  # noqa: E501
+
+
+        :return: The name_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._name_string
+
+    @name_string.setter
+    def name_string(self, name_string):
+        """Sets the name_string of this XmlItem.
+
+
+        :param name_string: The name_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._name_string = name_string
+
+    @property
+    def name_number(self):
+        """Gets the name_number of this XmlItem.  # noqa: E501
+
+
+        :return: The name_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._name_number
+
+    @name_number.setter
+    def name_number(self, name_number):
+        """Sets the name_number of this XmlItem.
+
+
+        :param name_number: The name_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._name_number = name_number
+
+    @property
+    def name_integer(self):
+        """Gets the name_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The name_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._name_integer
+
+    @name_integer.setter
+    def name_integer(self, name_integer):
+        """Sets the name_integer of this XmlItem.
+
+
+        :param name_integer: The name_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._name_integer = name_integer
+
+    @property
+    def name_boolean(self):
+        """Gets the name_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The name_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._name_boolean
+
+    @name_boolean.setter
+    def name_boolean(self, name_boolean):
+        """Sets the name_boolean of this XmlItem.
+
+
+        :param name_boolean: The name_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._name_boolean = name_boolean
+
+    @property
+    def name_array(self):
+        """Gets the name_array of this XmlItem.  # noqa: E501
+
+
+        :return: The name_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._name_array
+
+    @name_array.setter
+    def name_array(self, name_array):
+        """Sets the name_array of this XmlItem.
+
+
+        :param name_array: The name_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._name_array = name_array
+
+    @property
+    def name_wrapped_array(self):
+        """Gets the name_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The name_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._name_wrapped_array
+
+    @name_wrapped_array.setter
+    def name_wrapped_array(self, name_wrapped_array):
+        """Sets the name_wrapped_array of this XmlItem.
+
+
+        :param name_wrapped_array: The name_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._name_wrapped_array = name_wrapped_array
+
+    @property
+    def prefix_string(self):
+        """Gets the prefix_string of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._prefix_string
+
+    @prefix_string.setter
+    def prefix_string(self, prefix_string):
+        """Sets the prefix_string of this XmlItem.
+
+
+        :param prefix_string: The prefix_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._prefix_string = prefix_string
+
+    @property
+    def prefix_number(self):
+        """Gets the prefix_number of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._prefix_number
+
+    @prefix_number.setter
+    def prefix_number(self, prefix_number):
+        """Sets the prefix_number of this XmlItem.
+
+
+        :param prefix_number: The prefix_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._prefix_number = prefix_number
+
+    @property
+    def prefix_integer(self):
+        """Gets the prefix_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._prefix_integer
+
+    @prefix_integer.setter
+    def prefix_integer(self, prefix_integer):
+        """Sets the prefix_integer of this XmlItem.
+
+
+        :param prefix_integer: The prefix_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._prefix_integer = prefix_integer
+
+    @property
+    def prefix_boolean(self):
+        """Gets the prefix_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._prefix_boolean
+
+    @prefix_boolean.setter
+    def prefix_boolean(self, prefix_boolean):
+        """Sets the prefix_boolean of this XmlItem.
+
+
+        :param prefix_boolean: The prefix_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._prefix_boolean = prefix_boolean
+
+    @property
+    def prefix_array(self):
+        """Gets the prefix_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_array
+
+    @prefix_array.setter
+    def prefix_array(self, prefix_array):
+        """Sets the prefix_array of this XmlItem.
+
+
+        :param prefix_array: The prefix_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_array = prefix_array
+
+    @property
+    def prefix_wrapped_array(self):
+        """Gets the prefix_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_wrapped_array
+
+    @prefix_wrapped_array.setter
+    def prefix_wrapped_array(self, prefix_wrapped_array):
+        """Sets the prefix_wrapped_array of this XmlItem.
+
+
+        :param prefix_wrapped_array: The prefix_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_wrapped_array = prefix_wrapped_array
+
+    @property
+    def namespace_string(self):
+        """Gets the namespace_string of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._namespace_string
+
+    @namespace_string.setter
+    def namespace_string(self, namespace_string):
+        """Sets the namespace_string of this XmlItem.
+
+
+        :param namespace_string: The namespace_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._namespace_string = namespace_string
+
+    @property
+    def namespace_number(self):
+        """Gets the namespace_number of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._namespace_number
+
+    @namespace_number.setter
+    def namespace_number(self, namespace_number):
+        """Sets the namespace_number of this XmlItem.
+
+
+        :param namespace_number: The namespace_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._namespace_number = namespace_number
+
+    @property
+    def namespace_integer(self):
+        """Gets the namespace_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._namespace_integer
+
+    @namespace_integer.setter
+    def namespace_integer(self, namespace_integer):
+        """Sets the namespace_integer of this XmlItem.
+
+
+        :param namespace_integer: The namespace_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._namespace_integer = namespace_integer
+
+    @property
+    def namespace_boolean(self):
+        """Gets the namespace_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._namespace_boolean
+
+    @namespace_boolean.setter
+    def namespace_boolean(self, namespace_boolean):
+        """Sets the namespace_boolean of this XmlItem.
+
+
+        :param namespace_boolean: The namespace_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._namespace_boolean = namespace_boolean
+
+    @property
+    def namespace_array(self):
+        """Gets the namespace_array of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._namespace_array
+
+    @namespace_array.setter
+    def namespace_array(self, namespace_array):
+        """Sets the namespace_array of this XmlItem.
+
+
+        :param namespace_array: The namespace_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._namespace_array = namespace_array
+
+    @property
+    def namespace_wrapped_array(self):
+        """Gets the namespace_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The namespace_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._namespace_wrapped_array
+
+    @namespace_wrapped_array.setter
+    def namespace_wrapped_array(self, namespace_wrapped_array):
+        """Sets the namespace_wrapped_array of this XmlItem.
+
+
+        :param namespace_wrapped_array: The namespace_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._namespace_wrapped_array = namespace_wrapped_array
+
+    @property
+    def prefix_ns_string(self):
+        """Gets the prefix_ns_string of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_string of this XmlItem.  # noqa: E501
+        :rtype: str
+        """
+        return self._prefix_ns_string
+
+    @prefix_ns_string.setter
+    def prefix_ns_string(self, prefix_ns_string):
+        """Sets the prefix_ns_string of this XmlItem.
+
+
+        :param prefix_ns_string: The prefix_ns_string of this XmlItem.  # noqa: E501
+        :type: str
+        """
+
+        self._prefix_ns_string = prefix_ns_string
+
+    @property
+    def prefix_ns_number(self):
+        """Gets the prefix_ns_number of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_number of this XmlItem.  # noqa: E501
+        :rtype: float
+        """
+        return self._prefix_ns_number
+
+    @prefix_ns_number.setter
+    def prefix_ns_number(self, prefix_ns_number):
+        """Sets the prefix_ns_number of this XmlItem.
+
+
+        :param prefix_ns_number: The prefix_ns_number of this XmlItem.  # noqa: E501
+        :type: float
+        """
+
+        self._prefix_ns_number = prefix_ns_number
+
+    @property
+    def prefix_ns_integer(self):
+        """Gets the prefix_ns_integer of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_integer of this XmlItem.  # noqa: E501
+        :rtype: int
+        """
+        return self._prefix_ns_integer
+
+    @prefix_ns_integer.setter
+    def prefix_ns_integer(self, prefix_ns_integer):
+        """Sets the prefix_ns_integer of this XmlItem.
+
+
+        :param prefix_ns_integer: The prefix_ns_integer of this XmlItem.  # noqa: E501
+        :type: int
+        """
+
+        self._prefix_ns_integer = prefix_ns_integer
+
+    @property
+    def prefix_ns_boolean(self):
+        """Gets the prefix_ns_boolean of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_boolean of this XmlItem.  # noqa: E501
+        :rtype: bool
+        """
+        return self._prefix_ns_boolean
+
+    @prefix_ns_boolean.setter
+    def prefix_ns_boolean(self, prefix_ns_boolean):
+        """Sets the prefix_ns_boolean of this XmlItem.
+
+
+        :param prefix_ns_boolean: The prefix_ns_boolean of this XmlItem.  # noqa: E501
+        :type: bool
+        """
+
+        self._prefix_ns_boolean = prefix_ns_boolean
+
+    @property
+    def prefix_ns_array(self):
+        """Gets the prefix_ns_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_ns_array
+
+    @prefix_ns_array.setter
+    def prefix_ns_array(self, prefix_ns_array):
+        """Sets the prefix_ns_array of this XmlItem.
+
+
+        :param prefix_ns_array: The prefix_ns_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_ns_array = prefix_ns_array
+
+    @property
+    def prefix_ns_wrapped_array(self):
+        """Gets the prefix_ns_wrapped_array of this XmlItem.  # noqa: E501
+
+
+        :return: The prefix_ns_wrapped_array of this XmlItem.  # noqa: E501
+        :rtype: list[int]
+        """
+        return self._prefix_ns_wrapped_array
+
+    @prefix_ns_wrapped_array.setter
+    def prefix_ns_wrapped_array(self, prefix_ns_wrapped_array):
+        """Sets the prefix_ns_wrapped_array of this XmlItem.
+
+
+        :param prefix_ns_wrapped_array: The prefix_ns_wrapped_array of this XmlItem.  # noqa: E501
+        :type: list[int]
+        """
+
+        self._prefix_ns_wrapped_array = prefix_ns_wrapped_array
+
+    def to_dict(self):
+        """Returns the model properties as a dict"""
+        result = {}
+
+        for attr, _ in six.iteritems(self.openapi_types):
+            value = getattr(self, attr)
+            if isinstance(value, list):
+                result[attr] = list(map(
+                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+                    value
+                ))
+            elif hasattr(value, "to_dict"):
+                result[attr] = value.to_dict()
+            elif isinstance(value, dict):
+                result[attr] = dict(map(
+                    lambda item: (item[0], item[1].to_dict())
+                    if hasattr(item[1], "to_dict") else item,
+                    value.items()
+                ))
+            else:
+                result[attr] = value
+
+        return result
+
+    def to_str(self):
+        """Returns the string representation of the model"""
+        return pprint.pformat(self.to_dict())
+
+    def __repr__(self):
+        """For `print` and `pprint`"""
+        return self.to_str()
+
+    def __eq__(self, other):
+        """Returns true if both objects are equal"""
+        if not isinstance(other, XmlItem):
+            return False
+
+        return self.__dict__ == other.__dict__
+
+    def __ne__(self, other):
+        """Returns true if both objects are not equal"""
+        return not self == other
diff --git a/samples/client/petstore/python/test/test_xml_item.py b/samples/client/petstore/python/test/test_xml_item.py
new file mode 100644
index 0000000000000000000000000000000000000000..121f1ccb66235496840e244f3d3d23dbecb5f22d
--- /dev/null
+++ b/samples/client/petstore/python/test/test_xml_item.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+    OpenAPI Petstore
+
+    This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\  # noqa: E501
+
+    OpenAPI spec version: 1.0.0
+    Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.xml_item import XmlItem  # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestXmlItem(unittest.TestCase):
+    """XmlItem unit test stubs"""
+
+    def setUp(self):
+        pass
+
+    def tearDown(self):
+        pass
+
+    def testXmlItem(self):
+        """Test XmlItem"""
+        # FIXME: construct object with mandatory attributes with example values
+        # model = petstore_api.models.xml_item.XmlItem()  # noqa: E501
+        pass
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/samples/client/petstore/ruby/README.md b/samples/client/petstore/ruby/README.md
index 4c83eb54b5f1c543ac3e4732c9994a589eb6c3da..5cce30997c644b2af27d6eb6e4e57db9074cd3a1 100644
--- a/samples/client/petstore/ruby/README.md
+++ b/samples/client/petstore/ruby/README.md
@@ -74,6 +74,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 Class | Method | HTTP request | Description
 ------------ | ------------- | ------------- | -------------
 *Petstore::AnotherFakeApi* | [**call_123_test_special_tags**](docs/AnotherFakeApi.md#call_123_test_special_tags) | **PATCH** /another-fake/dummy | To test special tags
+*Petstore::FakeApi* | [**create_xml_item**](docs/FakeApi.md#create_xml_item) | **POST** /fake/create_xml_item | creates an XmlItem
 *Petstore::FakeApi* | [**fake_outer_boolean_serialize**](docs/FakeApi.md#fake_outer_boolean_serialize) | **POST** /fake/outer/boolean | 
 *Petstore::FakeApi* | [**fake_outer_composite_serialize**](docs/FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite | 
 *Petstore::FakeApi* | [**fake_outer_number_serialize**](docs/FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number | 
@@ -148,6 +149,7 @@ Class | Method | HTTP request | Description
  - [Petstore::TypeHolderDefault](docs/TypeHolderDefault.md)
  - [Petstore::TypeHolderExample](docs/TypeHolderExample.md)
  - [Petstore::User](docs/User.md)
+ - [Petstore::XmlItem](docs/XmlItem.md)
 
 
 ## Documentation for Authorization
diff --git a/samples/client/petstore/ruby/docs/FakeApi.md b/samples/client/petstore/ruby/docs/FakeApi.md
index e34e1ef5ef504f69ab61b08ce2be30555ac59f48..38449b5e9551435ab82b8144a2815dc21c2bae02 100644
--- a/samples/client/petstore/ruby/docs/FakeApi.md
+++ b/samples/client/petstore/ruby/docs/FakeApi.md
@@ -4,6 +4,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Method | HTTP request | Description
 ------------- | ------------- | -------------
+[**create_xml_item**](FakeApi.md#create_xml_item) | **POST** /fake/create_xml_item | creates an XmlItem
 [**fake_outer_boolean_serialize**](FakeApi.md#fake_outer_boolean_serialize) | **POST** /fake/outer/boolean | 
 [**fake_outer_composite_serialize**](FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite | 
 [**fake_outer_number_serialize**](FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number | 
@@ -18,6 +19,50 @@ Method | HTTP request | Description
 [**test_json_form_data**](FakeApi.md#test_json_form_data) | **GET** /fake/jsonFormData | test json serialization of form data
 
 
+# **create_xml_item**
+> create_xml_item(xml_item)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```ruby
+# load the gem
+require 'petstore'
+
+api_instance = Petstore::FakeApi.new
+xml_item = Petstore::XmlItem.new # XmlItem | XmlItem Body
+
+begin
+  #creates an XmlItem
+  api_instance.create_xml_item(xml_item)
+rescue Petstore::ApiError => e
+  puts "Exception when calling FakeApi->create_xml_item: #{e}"
+end
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **xml_item** | [**XmlItem**](XmlItem.md)| XmlItem Body | 
+
+### Return type
+
+nil (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
+
+
 # **fake_outer_boolean_serialize**
 > BOOLEAN fake_outer_boolean_serialize(opts)
 
diff --git a/samples/client/petstore/ruby/docs/XmlItem.md b/samples/client/petstore/ruby/docs/XmlItem.md
new file mode 100644
index 0000000000000000000000000000000000000000..8b0f9ddb9ec0da30e54de6571b9a30e424ce5baf
--- /dev/null
+++ b/samples/client/petstore/ruby/docs/XmlItem.md
@@ -0,0 +1,36 @@
+# Petstore::XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute_string** | **String** |  | [optional] 
+**attribute_number** | **Float** |  | [optional] 
+**attribute_integer** | **Integer** |  | [optional] 
+**attribute_boolean** | **BOOLEAN** |  | [optional] 
+**wrapped_array** | **Array&lt;Integer&gt;** |  | [optional] 
+**name_string** | **String** |  | [optional] 
+**name_number** | **Float** |  | [optional] 
+**name_integer** | **Integer** |  | [optional] 
+**name_boolean** | **BOOLEAN** |  | [optional] 
+**name_array** | **Array&lt;Integer&gt;** |  | [optional] 
+**name_wrapped_array** | **Array&lt;Integer&gt;** |  | [optional] 
+**prefix_string** | **String** |  | [optional] 
+**prefix_number** | **Float** |  | [optional] 
+**prefix_integer** | **Integer** |  | [optional] 
+**prefix_boolean** | **BOOLEAN** |  | [optional] 
+**prefix_array** | **Array&lt;Integer&gt;** |  | [optional] 
+**prefix_wrapped_array** | **Array&lt;Integer&gt;** |  | [optional] 
+**namespace_string** | **String** |  | [optional] 
+**namespace_number** | **Float** |  | [optional] 
+**namespace_integer** | **Integer** |  | [optional] 
+**namespace_boolean** | **BOOLEAN** |  | [optional] 
+**namespace_array** | **Array&lt;Integer&gt;** |  | [optional] 
+**namespace_wrapped_array** | **Array&lt;Integer&gt;** |  | [optional] 
+**prefix_ns_string** | **String** |  | [optional] 
+**prefix_ns_number** | **Float** |  | [optional] 
+**prefix_ns_integer** | **Integer** |  | [optional] 
+**prefix_ns_boolean** | **BOOLEAN** |  | [optional] 
+**prefix_ns_array** | **Array&lt;Integer&gt;** |  | [optional] 
+**prefix_ns_wrapped_array** | **Array&lt;Integer&gt;** |  | [optional] 
+
+
diff --git a/samples/client/petstore/ruby/lib/petstore.rb b/samples/client/petstore/ruby/lib/petstore.rb
index c01921ea36e539ad59370406dc13b5a1d00c5e8a..8e0e68737e1a659a4ebb4300039c131df019dbfb 100644
--- a/samples/client/petstore/ruby/lib/petstore.rb
+++ b/samples/client/petstore/ruby/lib/petstore.rb
@@ -53,6 +53,7 @@ require 'petstore/models/tag'
 require 'petstore/models/type_holder_default'
 require 'petstore/models/type_holder_example'
 require 'petstore/models/user'
+require 'petstore/models/xml_item'
 
 # APIs
 require 'petstore/api/another_fake_api'
diff --git a/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb b/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb
index 24801324a8b2bf8873d03f602d318d45a38282c0..cbf61135d43d18d704972826a1764aeb837c7572 100644
--- a/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb
+++ b/samples/client/petstore/ruby/lib/petstore/api/fake_api.rb
@@ -19,6 +19,58 @@ module Petstore
     def initialize(api_client = ApiClient.default)
       @api_client = api_client
     end
+    # creates an XmlItem
+    # this route creates an XmlItem
+    # @param xml_item XmlItem Body
+    # @param [Hash] opts the optional parameters
+    # @return [nil]
+    def create_xml_item(xml_item, opts = {})
+      create_xml_item_with_http_info(xml_item, opts)
+      nil
+    end
+
+    # creates an XmlItem
+    # this route creates an XmlItem
+    # @param xml_item XmlItem Body
+    # @param [Hash] opts the optional parameters
+    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
+    def create_xml_item_with_http_info(xml_item, opts = {})
+      if @api_client.config.debugging
+        @api_client.config.logger.debug 'Calling API: FakeApi.create_xml_item ...'
+      end
+      # verify the required parameter 'xml_item' is set
+      if @api_client.config.client_side_validation && xml_item.nil?
+        fail ArgumentError, "Missing the required parameter 'xml_item' when calling FakeApi.create_xml_item"
+      end
+      # resource path
+      local_var_path = '/fake/create_xml_item'
+
+      # query parameters
+      query_params = {}
+
+      # header parameters
+      header_params = {}
+      # HTTP header 'Content-Type'
+      header_params['Content-Type'] = @api_client.select_header_content_type(['application/xml', 'application/xml; charset=utf-8', 'application/xml; charset=utf-16', 'text/xml', 'text/xml; charset=utf-8', 'text/xml; charset=utf-16'])
+
+      # form parameters
+      form_params = {}
+
+      # http body (model)
+      post_body = @api_client.object_to_http_body(xml_item)
+      auth_names = []
+      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
+        :header_params => header_params,
+        :query_params => query_params,
+        :form_params => form_params,
+        :body => post_body,
+        :auth_names => auth_names)
+      if @api_client.config.debugging
+        @api_client.config.logger.debug "API called: FakeApi#create_xml_item\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
+      end
+      return data, status_code, headers
+    end
+
     # Test serialization of outer boolean types
     # @param [Hash] opts the optional parameters
     # @option opts [BOOLEAN] :body Input boolean as post body
diff --git a/samples/client/petstore/ruby/lib/petstore/models/xml_item.rb b/samples/client/petstore/ruby/lib/petstore/models/xml_item.rb
new file mode 100644
index 0000000000000000000000000000000000000000..fade84fd8ecd7e5a3c403be7a283a282285d7c2a
--- /dev/null
+++ b/samples/client/petstore/ruby/lib/petstore/models/xml_item.rb
@@ -0,0 +1,461 @@
+=begin
+#OpenAPI Petstore
+
+#This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+
+OpenAPI spec version: 1.0.0
+
+Generated by: https://openapi-generator.tech
+OpenAPI Generator version: 4.0.0-SNAPSHOT
+
+=end
+
+require 'date'
+
+module Petstore
+  class XmlItem
+    attr_accessor :attribute_string
+
+    attr_accessor :attribute_number
+
+    attr_accessor :attribute_integer
+
+    attr_accessor :attribute_boolean
+
+    attr_accessor :wrapped_array
+
+    attr_accessor :name_string
+
+    attr_accessor :name_number
+
+    attr_accessor :name_integer
+
+    attr_accessor :name_boolean
+
+    attr_accessor :name_array
+
+    attr_accessor :name_wrapped_array
+
+    attr_accessor :prefix_string
+
+    attr_accessor :prefix_number
+
+    attr_accessor :prefix_integer
+
+    attr_accessor :prefix_boolean
+
+    attr_accessor :prefix_array
+
+    attr_accessor :prefix_wrapped_array
+
+    attr_accessor :namespace_string
+
+    attr_accessor :namespace_number
+
+    attr_accessor :namespace_integer
+
+    attr_accessor :namespace_boolean
+
+    attr_accessor :namespace_array
+
+    attr_accessor :namespace_wrapped_array
+
+    attr_accessor :prefix_ns_string
+
+    attr_accessor :prefix_ns_number
+
+    attr_accessor :prefix_ns_integer
+
+    attr_accessor :prefix_ns_boolean
+
+    attr_accessor :prefix_ns_array
+
+    attr_accessor :prefix_ns_wrapped_array
+
+    # Attribute mapping from ruby-style variable name to JSON key.
+    def self.attribute_map
+      {
+        :'attribute_string' => :'attribute_string',
+        :'attribute_number' => :'attribute_number',
+        :'attribute_integer' => :'attribute_integer',
+        :'attribute_boolean' => :'attribute_boolean',
+        :'wrapped_array' => :'wrapped_array',
+        :'name_string' => :'name_string',
+        :'name_number' => :'name_number',
+        :'name_integer' => :'name_integer',
+        :'name_boolean' => :'name_boolean',
+        :'name_array' => :'name_array',
+        :'name_wrapped_array' => :'name_wrapped_array',
+        :'prefix_string' => :'prefix_string',
+        :'prefix_number' => :'prefix_number',
+        :'prefix_integer' => :'prefix_integer',
+        :'prefix_boolean' => :'prefix_boolean',
+        :'prefix_array' => :'prefix_array',
+        :'prefix_wrapped_array' => :'prefix_wrapped_array',
+        :'namespace_string' => :'namespace_string',
+        :'namespace_number' => :'namespace_number',
+        :'namespace_integer' => :'namespace_integer',
+        :'namespace_boolean' => :'namespace_boolean',
+        :'namespace_array' => :'namespace_array',
+        :'namespace_wrapped_array' => :'namespace_wrapped_array',
+        :'prefix_ns_string' => :'prefix_ns_string',
+        :'prefix_ns_number' => :'prefix_ns_number',
+        :'prefix_ns_integer' => :'prefix_ns_integer',
+        :'prefix_ns_boolean' => :'prefix_ns_boolean',
+        :'prefix_ns_array' => :'prefix_ns_array',
+        :'prefix_ns_wrapped_array' => :'prefix_ns_wrapped_array'
+      }
+    end
+
+    # Attribute type mapping.
+    def self.openapi_types
+      {
+        :'attribute_string' => :'String',
+        :'attribute_number' => :'Float',
+        :'attribute_integer' => :'Integer',
+        :'attribute_boolean' => :'BOOLEAN',
+        :'wrapped_array' => :'Array<Integer>',
+        :'name_string' => :'String',
+        :'name_number' => :'Float',
+        :'name_integer' => :'Integer',
+        :'name_boolean' => :'BOOLEAN',
+        :'name_array' => :'Array<Integer>',
+        :'name_wrapped_array' => :'Array<Integer>',
+        :'prefix_string' => :'String',
+        :'prefix_number' => :'Float',
+        :'prefix_integer' => :'Integer',
+        :'prefix_boolean' => :'BOOLEAN',
+        :'prefix_array' => :'Array<Integer>',
+        :'prefix_wrapped_array' => :'Array<Integer>',
+        :'namespace_string' => :'String',
+        :'namespace_number' => :'Float',
+        :'namespace_integer' => :'Integer',
+        :'namespace_boolean' => :'BOOLEAN',
+        :'namespace_array' => :'Array<Integer>',
+        :'namespace_wrapped_array' => :'Array<Integer>',
+        :'prefix_ns_string' => :'String',
+        :'prefix_ns_number' => :'Float',
+        :'prefix_ns_integer' => :'Integer',
+        :'prefix_ns_boolean' => :'BOOLEAN',
+        :'prefix_ns_array' => :'Array<Integer>',
+        :'prefix_ns_wrapped_array' => :'Array<Integer>'
+      }
+    end
+
+    # Initializes the object
+    # @param [Hash] attributes Model attributes in the form of hash
+    def initialize(attributes = {})
+      return unless attributes.is_a?(Hash)
+
+      # convert string to symbol for hash key
+      attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
+
+      if attributes.has_key?(:'attribute_string')
+        self.attribute_string = attributes[:'attribute_string']
+      end
+
+      if attributes.has_key?(:'attribute_number')
+        self.attribute_number = attributes[:'attribute_number']
+      end
+
+      if attributes.has_key?(:'attribute_integer')
+        self.attribute_integer = attributes[:'attribute_integer']
+      end
+
+      if attributes.has_key?(:'attribute_boolean')
+        self.attribute_boolean = attributes[:'attribute_boolean']
+      end
+
+      if attributes.has_key?(:'wrapped_array')
+        if (value = attributes[:'wrapped_array']).is_a?(Array)
+          self.wrapped_array = value
+        end
+      end
+
+      if attributes.has_key?(:'name_string')
+        self.name_string = attributes[:'name_string']
+      end
+
+      if attributes.has_key?(:'name_number')
+        self.name_number = attributes[:'name_number']
+      end
+
+      if attributes.has_key?(:'name_integer')
+        self.name_integer = attributes[:'name_integer']
+      end
+
+      if attributes.has_key?(:'name_boolean')
+        self.name_boolean = attributes[:'name_boolean']
+      end
+
+      if attributes.has_key?(:'name_array')
+        if (value = attributes[:'name_array']).is_a?(Array)
+          self.name_array = value
+        end
+      end
+
+      if attributes.has_key?(:'name_wrapped_array')
+        if (value = attributes[:'name_wrapped_array']).is_a?(Array)
+          self.name_wrapped_array = value
+        end
+      end
+
+      if attributes.has_key?(:'prefix_string')
+        self.prefix_string = attributes[:'prefix_string']
+      end
+
+      if attributes.has_key?(:'prefix_number')
+        self.prefix_number = attributes[:'prefix_number']
+      end
+
+      if attributes.has_key?(:'prefix_integer')
+        self.prefix_integer = attributes[:'prefix_integer']
+      end
+
+      if attributes.has_key?(:'prefix_boolean')
+        self.prefix_boolean = attributes[:'prefix_boolean']
+      end
+
+      if attributes.has_key?(:'prefix_array')
+        if (value = attributes[:'prefix_array']).is_a?(Array)
+          self.prefix_array = value
+        end
+      end
+
+      if attributes.has_key?(:'prefix_wrapped_array')
+        if (value = attributes[:'prefix_wrapped_array']).is_a?(Array)
+          self.prefix_wrapped_array = value
+        end
+      end
+
+      if attributes.has_key?(:'namespace_string')
+        self.namespace_string = attributes[:'namespace_string']
+      end
+
+      if attributes.has_key?(:'namespace_number')
+        self.namespace_number = attributes[:'namespace_number']
+      end
+
+      if attributes.has_key?(:'namespace_integer')
+        self.namespace_integer = attributes[:'namespace_integer']
+      end
+
+      if attributes.has_key?(:'namespace_boolean')
+        self.namespace_boolean = attributes[:'namespace_boolean']
+      end
+
+      if attributes.has_key?(:'namespace_array')
+        if (value = attributes[:'namespace_array']).is_a?(Array)
+          self.namespace_array = value
+        end
+      end
+
+      if attributes.has_key?(:'namespace_wrapped_array')
+        if (value = attributes[:'namespace_wrapped_array']).is_a?(Array)
+          self.namespace_wrapped_array = value
+        end
+      end
+
+      if attributes.has_key?(:'prefix_ns_string')
+        self.prefix_ns_string = attributes[:'prefix_ns_string']
+      end
+
+      if attributes.has_key?(:'prefix_ns_number')
+        self.prefix_ns_number = attributes[:'prefix_ns_number']
+      end
+
+      if attributes.has_key?(:'prefix_ns_integer')
+        self.prefix_ns_integer = attributes[:'prefix_ns_integer']
+      end
+
+      if attributes.has_key?(:'prefix_ns_boolean')
+        self.prefix_ns_boolean = attributes[:'prefix_ns_boolean']
+      end
+
+      if attributes.has_key?(:'prefix_ns_array')
+        if (value = attributes[:'prefix_ns_array']).is_a?(Array)
+          self.prefix_ns_array = value
+        end
+      end
+
+      if attributes.has_key?(:'prefix_ns_wrapped_array')
+        if (value = attributes[:'prefix_ns_wrapped_array']).is_a?(Array)
+          self.prefix_ns_wrapped_array = value
+        end
+      end
+    end
+
+    # Show invalid properties with the reasons. Usually used together with valid?
+    # @return Array for valid properties with the reasons
+    def list_invalid_properties
+      invalid_properties = Array.new
+      invalid_properties
+    end
+
+    # Check to see if the all the properties in the model are valid
+    # @return true if the model is valid
+    def valid?
+      true
+    end
+
+    # Checks equality by comparing each attribute.
+    # @param [Object] Object to be compared
+    def ==(o)
+      return true if self.equal?(o)
+      self.class == o.class &&
+          attribute_string == o.attribute_string &&
+          attribute_number == o.attribute_number &&
+          attribute_integer == o.attribute_integer &&
+          attribute_boolean == o.attribute_boolean &&
+          wrapped_array == o.wrapped_array &&
+          name_string == o.name_string &&
+          name_number == o.name_number &&
+          name_integer == o.name_integer &&
+          name_boolean == o.name_boolean &&
+          name_array == o.name_array &&
+          name_wrapped_array == o.name_wrapped_array &&
+          prefix_string == o.prefix_string &&
+          prefix_number == o.prefix_number &&
+          prefix_integer == o.prefix_integer &&
+          prefix_boolean == o.prefix_boolean &&
+          prefix_array == o.prefix_array &&
+          prefix_wrapped_array == o.prefix_wrapped_array &&
+          namespace_string == o.namespace_string &&
+          namespace_number == o.namespace_number &&
+          namespace_integer == o.namespace_integer &&
+          namespace_boolean == o.namespace_boolean &&
+          namespace_array == o.namespace_array &&
+          namespace_wrapped_array == o.namespace_wrapped_array &&
+          prefix_ns_string == o.prefix_ns_string &&
+          prefix_ns_number == o.prefix_ns_number &&
+          prefix_ns_integer == o.prefix_ns_integer &&
+          prefix_ns_boolean == o.prefix_ns_boolean &&
+          prefix_ns_array == o.prefix_ns_array &&
+          prefix_ns_wrapped_array == o.prefix_ns_wrapped_array
+    end
+
+    # @see the `==` method
+    # @param [Object] Object to be compared
+    def eql?(o)
+      self == o
+    end
+
+    # Calculates hash code according to all attributes.
+    # @return [Fixnum] Hash code
+    def hash
+      [attribute_string, attribute_number, attribute_integer, attribute_boolean, wrapped_array, name_string, name_number, name_integer, name_boolean, name_array, name_wrapped_array, prefix_string, prefix_number, prefix_integer, prefix_boolean, prefix_array, prefix_wrapped_array, namespace_string, namespace_number, namespace_integer, namespace_boolean, namespace_array, namespace_wrapped_array, prefix_ns_string, prefix_ns_number, prefix_ns_integer, prefix_ns_boolean, prefix_ns_array, prefix_ns_wrapped_array].hash
+    end
+
+    # Builds the object from hash
+    # @param [Hash] attributes Model attributes in the form of hash
+    # @return [Object] Returns the model itself
+    def self.build_from_hash(attributes)
+      new.build_from_hash(attributes)
+    end
+
+    # Builds the object from hash
+    # @param [Hash] attributes Model attributes in the form of hash
+    # @return [Object] Returns the model itself
+    def build_from_hash(attributes)
+      return nil unless attributes.is_a?(Hash)
+      self.class.openapi_types.each_pair do |key, type|
+        if type =~ /\AArray<(.*)>/i
+          # check to ensure the input is an array given that the attribute
+          # is documented as an array but the input is not
+          if attributes[self.class.attribute_map[key]].is_a?(Array)
+            self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
+          end
+        elsif !attributes[self.class.attribute_map[key]].nil?
+          self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
+        end # or else data not found in attributes(hash), not an issue as the data can be optional
+      end
+
+      self
+    end
+
+    # Deserializes the data based on type
+    # @param string type Data type
+    # @param string value Value to be deserialized
+    # @return [Object] Deserialized data
+    def _deserialize(type, value)
+      case type.to_sym
+      when :DateTime
+        DateTime.parse(value)
+      when :Date
+        Date.parse(value)
+      when :String
+        value.to_s
+      when :Integer
+        value.to_i
+      when :Float
+        value.to_f
+      when :BOOLEAN
+        if value.to_s =~ /\A(true|t|yes|y|1)\z/i
+          true
+        else
+          false
+        end
+      when :Object
+        # generic object (usually a Hash), return directly
+        value
+      when /\AArray<(?<inner_type>.+)>\z/
+        inner_type = Regexp.last_match[:inner_type]
+        value.map { |v| _deserialize(inner_type, v) }
+      when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
+        k_type = Regexp.last_match[:k_type]
+        v_type = Regexp.last_match[:v_type]
+        {}.tap do |hash|
+          value.each do |k, v|
+            hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
+          end
+        end
+      else # model
+        Petstore.const_get(type).build_from_hash(value)
+      end
+    end
+
+    # Returns the string representation of the object
+    # @return [String] String presentation of the object
+    def to_s
+      to_hash.to_s
+    end
+
+    # to_body is an alias to to_hash (backward compatibility)
+    # @return [Hash] Returns the object in the form of hash
+    def to_body
+      to_hash
+    end
+
+    # Returns the object in the form of hash
+    # @return [Hash] Returns the object in the form of hash
+    def to_hash
+      hash = {}
+      self.class.attribute_map.each_pair do |attr, param|
+        value = self.send(attr)
+        next if value.nil?
+        hash[param] = _to_hash(value)
+      end
+      hash
+    end
+
+    # Outputs non-array value in the form of hash
+    # For object, use to_hash. Otherwise, just return the value
+    # @param [Object] value Any valid value
+    # @return [Hash] Returns the value in the form of hash
+    def _to_hash(value)
+      if value.is_a?(Array)
+        value.compact.map { |v| _to_hash(v) }
+      elsif value.is_a?(Hash)
+        {}.tap do |hash|
+          value.each { |k, v| hash[k] = _to_hash(v) }
+        end
+      elsif value.respond_to? :to_hash
+        value.to_hash
+      else
+        value
+      end
+    end
+
+  end
+
+end
diff --git a/samples/client/petstore/ruby/spec/models/xml_item_spec.rb b/samples/client/petstore/ruby/spec/models/xml_item_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..ef7085bab0c7dec636518cea791f3eee1826e6a2
--- /dev/null
+++ b/samples/client/petstore/ruby/spec/models/xml_item_spec.rb
@@ -0,0 +1,209 @@
+=begin
+#OpenAPI Petstore
+
+#This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+
+OpenAPI spec version: 1.0.0
+
+Generated by: https://openapi-generator.tech
+OpenAPI Generator version: 4.0.0-SNAPSHOT
+
+=end
+
+require 'spec_helper'
+require 'json'
+require 'date'
+
+# Unit tests for Petstore::XmlItem
+# Automatically generated by openapi-generator (https://openapi-generator.tech)
+# Please update as you see appropriate
+describe 'XmlItem' do
+  before do
+    # run before each test
+    @instance = Petstore::XmlItem.new
+  end
+
+  after do
+    # run after each test
+  end
+
+  describe 'test an instance of XmlItem' do
+    it 'should create an instance of XmlItem' do
+      expect(@instance).to be_instance_of(Petstore::XmlItem)
+    end
+  end
+  describe 'test attribute "attribute_string"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "attribute_number"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "attribute_integer"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "attribute_boolean"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "wrapped_array"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "name_string"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "name_number"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "name_integer"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "name_boolean"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "name_array"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "name_wrapped_array"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_string"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_number"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_integer"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_boolean"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_array"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_wrapped_array"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "namespace_string"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "namespace_number"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "namespace_integer"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "namespace_boolean"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "namespace_array"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "namespace_wrapped_array"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_namespace_string"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_namespace_number"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_namespace_integer"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_namespace_boolean"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_namespace_array"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+  describe 'test attribute "prefix_namespace_wrapped_array"' do
+    it 'should work' do
+      # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
+    end
+  end
+
+end
diff --git a/samples/schema/petstore/mysql/mysql_schema.sql b/samples/schema/petstore/mysql/mysql_schema.sql
index c4c06ab189cef66bcd8eda9ce711e571e03c3052..afc85caaac20b52a8beb7c889c4fb4f54c07186b 100644
--- a/samples/schema/petstore/mysql/mysql_schema.sql
+++ b/samples/schema/petstore/mysql/mysql_schema.sql
@@ -355,3 +355,39 @@ CREATE TABLE IF NOT EXISTS `User` (
   `userStatus` INT DEFAULT NULL COMMENT 'User Status'
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
+--
+-- Table structure for table `XmlItem` generated from model 'XmlItem'
+--
+
+CREATE TABLE IF NOT EXISTS `XmlItem` (
+  `attribute_string` TEXT DEFAULT NULL,
+  `attribute_number` DECIMAL(20, 9) DEFAULT NULL,
+  `attribute_integer` INT DEFAULT NULL,
+  `attribute_boolean` TINYINT(1) DEFAULT NULL,
+  `wrapped_array` JSON DEFAULT NULL,
+  `name_string` TEXT DEFAULT NULL,
+  `name_number` DECIMAL(20, 9) DEFAULT NULL,
+  `name_integer` INT DEFAULT NULL,
+  `name_boolean` TINYINT(1) DEFAULT NULL,
+  `name_array` JSON DEFAULT NULL,
+  `name_wrapped_array` JSON DEFAULT NULL,
+  `prefix_string` TEXT DEFAULT NULL,
+  `prefix_number` DECIMAL(20, 9) DEFAULT NULL,
+  `prefix_integer` INT DEFAULT NULL,
+  `prefix_boolean` TINYINT(1) DEFAULT NULL,
+  `prefix_array` JSON DEFAULT NULL,
+  `prefix_wrapped_array` JSON DEFAULT NULL,
+  `namespace_string` TEXT DEFAULT NULL,
+  `namespace_number` DECIMAL(20, 9) DEFAULT NULL,
+  `namespace_integer` INT DEFAULT NULL,
+  `namespace_boolean` TINYINT(1) DEFAULT NULL,
+  `namespace_array` JSON DEFAULT NULL,
+  `namespace_wrapped_array` JSON DEFAULT NULL,
+  `prefix_ns_string` TEXT DEFAULT NULL,
+  `prefix_ns_number` DECIMAL(20, 9) DEFAULT NULL,
+  `prefix_ns_integer` INT DEFAULT NULL,
+  `prefix_ns_boolean` TINYINT(1) DEFAULT NULL,
+  `prefix_ns_array` JSON DEFAULT NULL,
+  `prefix_ns_wrapped_array` JSON DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
diff --git a/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/api/FakeApi.java
index 50ff002289a446e5d36defa211fa9661e1cf39bd..6acc6198f5abb2b21a8d09c920184df552eb2763 100644
--- a/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/api/FakeApi.java
@@ -9,6 +9,7 @@ import org.joda.time.LocalDate;
 import java.util.Map;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -37,6 +38,20 @@ import javax.validation.Valid;
 @Api(value = "/", description = "")
 public interface FakeApi  {
 
+    /**
+     * creates an XmlItem
+     *
+     * this route creates an XmlItem
+     *
+     */
+    @POST
+    @Path("/fake/create_xml_item")
+    @Consumes({ "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" })
+    @ApiOperation(value = "creates an XmlItem", tags={ "fake",  })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    public void createXmlItem(@Valid XmlItem xmlItem);
+
     @POST
     @Path("/fake/outer/boolean")
     @Produces({ "*/*" })
diff --git a/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..d12a3515382e777674776a09ac38d0a911e7a536
--- /dev/null
+++ b/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,729 @@
+package org.openapitools.model;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import io.swagger.annotations.ApiModelProperty;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class XmlItem  {
+  
+  @ApiModelProperty(example = "string", value = "")
+  private String attributeString;
+
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  private BigDecimal attributeNumber;
+
+  @ApiModelProperty(example = "-2", value = "")
+  private Integer attributeInteger;
+
+  @ApiModelProperty(example = "true", value = "")
+  private Boolean attributeBoolean;
+
+  @ApiModelProperty(value = "")
+  private List<Integer> wrappedArray = null;
+
+  @ApiModelProperty(example = "string", value = "")
+  private String nameString;
+
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  private BigDecimal nameNumber;
+
+  @ApiModelProperty(example = "-2", value = "")
+  private Integer nameInteger;
+
+  @ApiModelProperty(example = "true", value = "")
+  private Boolean nameBoolean;
+
+  @ApiModelProperty(value = "")
+  private List<Integer> nameArray = null;
+
+  @ApiModelProperty(value = "")
+  private List<Integer> nameWrappedArray = null;
+
+  @ApiModelProperty(example = "string", value = "")
+  private String prefixString;
+
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  private BigDecimal prefixNumber;
+
+  @ApiModelProperty(example = "-2", value = "")
+  private Integer prefixInteger;
+
+  @ApiModelProperty(example = "true", value = "")
+  private Boolean prefixBoolean;
+
+  @ApiModelProperty(value = "")
+  private List<Integer> prefixArray = null;
+
+  @ApiModelProperty(value = "")
+  private List<Integer> prefixWrappedArray = null;
+
+  @ApiModelProperty(example = "string", value = "")
+  private String namespaceString;
+
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  private BigDecimal namespaceNumber;
+
+  @ApiModelProperty(example = "-2", value = "")
+  private Integer namespaceInteger;
+
+  @ApiModelProperty(example = "true", value = "")
+  private Boolean namespaceBoolean;
+
+  @ApiModelProperty(value = "")
+  private List<Integer> namespaceArray = null;
+
+  @ApiModelProperty(value = "")
+  private List<Integer> namespaceWrappedArray = null;
+
+  @ApiModelProperty(example = "string", value = "")
+  private String prefixNsString;
+
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  private BigDecimal prefixNsNumber;
+
+  @ApiModelProperty(example = "-2", value = "")
+  private Integer prefixNsInteger;
+
+  @ApiModelProperty(example = "true", value = "")
+  private Boolean prefixNsBoolean;
+
+  @ApiModelProperty(value = "")
+  private List<Integer> prefixNsArray = null;
+
+  @ApiModelProperty(value = "")
+  private List<Integer> prefixNsWrappedArray = null;
+ /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @JsonProperty("attribute_string")
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+ /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @JsonProperty("attribute_number")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+ /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @JsonProperty("attribute_integer")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+ /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @JsonProperty("attribute_boolean")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+ /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @JsonProperty("wrapped_array")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+ /**
+   * Get nameString
+   * @return nameString
+  **/
+  @JsonProperty("name_string")
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+ /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @JsonProperty("name_number")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+ /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @JsonProperty("name_integer")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+ /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @JsonProperty("name_boolean")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+ /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @JsonProperty("name_array")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+ /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @JsonProperty("name_wrapped_array")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+ /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @JsonProperty("prefix_string")
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+ /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @JsonProperty("prefix_number")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+ /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @JsonProperty("prefix_integer")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+ /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @JsonProperty("prefix_boolean")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+ /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @JsonProperty("prefix_array")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+ /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @JsonProperty("prefix_wrapped_array")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+ /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @JsonProperty("namespace_string")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+ /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @JsonProperty("namespace_number")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+ /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @JsonProperty("namespace_integer")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+ /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @JsonProperty("namespace_boolean")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+ /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @JsonProperty("namespace_array")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+ /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @JsonProperty("namespace_wrapped_array")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+ /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @JsonProperty("prefix_ns_string")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+ /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @JsonProperty("prefix_ns_number")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+ /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @JsonProperty("prefix_ns_integer")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+ /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @JsonProperty("prefix_ns_boolean")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+ /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @JsonProperty("prefix_ns_array")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+ /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @JsonProperty("prefix_ns_wrapped_array")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private static String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/jaxrs-cxf/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs-cxf/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
index 582300cf3f10df9cdb17c20ecf61ecda4c1684c5..5857b27c3eb272f6b5f10d2e48a001d7d577c11a 100644
--- a/samples/server/petstore/jaxrs-cxf/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
+++ b/samples/server/petstore/jaxrs-cxf/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
@@ -10,6 +10,7 @@ import org.joda.time.LocalDate;
 import java.util.Map;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -31,6 +32,18 @@ import io.swagger.annotations.Api;
  *
  */
 public class FakeApiServiceImpl implements FakeApi {
+    /**
+     * creates an XmlItem
+     *
+     * this route creates an XmlItem
+     *
+     */
+    public void createXmlItem(XmlItem xmlItem) {
+        // TODO: Implement...
+        
+        
+    }
+    
     public Boolean fakeOuterBooleanSerialize(Boolean body) {
         // TODO: Implement...
         
diff --git a/samples/server/petstore/jaxrs-cxf/src/test/java/org/openapitools/api/FakeApiTest.java b/samples/server/petstore/jaxrs-cxf/src/test/java/org/openapitools/api/FakeApiTest.java
index 83a561cd657c4d4bc93d31f8518dd82e4c23ea00..5b41318fb6782840e342e8449b23f7ccd3c2e6a2 100644
--- a/samples/server/petstore/jaxrs-cxf/src/test/java/org/openapitools/api/FakeApiTest.java
+++ b/samples/server/petstore/jaxrs-cxf/src/test/java/org/openapitools/api/FakeApiTest.java
@@ -34,6 +34,7 @@ import org.joda.time.LocalDate;
 import java.util.Map;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import org.junit.Test;
 import org.junit.Before;
 import static org.junit.Assert.*;
@@ -79,6 +80,24 @@ public class FakeApiTest {
     }
 
     
+    /**
+     * creates an XmlItem
+     *
+     * this route creates an XmlItem
+     *
+     * @throws ApiException
+     *          if the Api call fails
+     */
+    @Test
+    public void createXmlItemTest() {
+        XmlItem xmlItem = null;
+        //api.createXmlItem(xmlItem);
+        
+        // TODO: test validations
+        
+        
+    }
+    
     /**
      * @throws ApiException
      *          if the Api call fails
diff --git a/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApi.java
index b80b93d0ec7084ac5de1dcf5c710b1483fa5743e..dceadf1f3b74706e701322a92f8d3e4180e5c413 100644
--- a/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApi.java
@@ -17,6 +17,7 @@ import org.openapitools.model.ModelApiResponse;
 import java.time.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.Map;
 import java.util.List;
@@ -64,6 +65,18 @@ public class FakeApi  {
       this.delegate = delegate;
    }
 
+    @POST
+    @Path("/create_xml_item")
+    @Consumes({ "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" })
+    
+    @io.swagger.annotations.ApiOperation(value = "creates an XmlItem", notes = "this route creates an XmlItem", response = Void.class, tags={ "fake", })
+    @io.swagger.annotations.ApiResponses(value = { 
+        @io.swagger.annotations.ApiResponse(code = 200, message = "successful operation", response = Void.class) })
+    public Response createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true) @Valid XmlItem xmlItem
+,@Context SecurityContext securityContext)
+    throws NotFoundException {
+        return delegate.createXmlItem(xmlItem,securityContext);
+    }
     @POST
     @Path("/outer/boolean")
     
diff --git a/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApiService.java b/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApiService.java
index 9b393ce65086db1073c6d73bbfd4348c05015fdb..834fcfed482721fb33364852543b1bcd2125f861 100644
--- a/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApiService.java
+++ b/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/api/FakeApiService.java
@@ -15,6 +15,7 @@ import org.openapitools.model.ModelApiResponse;
 import java.time.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.List;
 import org.openapitools.api.NotFoundException;
@@ -26,6 +27,7 @@ import javax.ws.rs.core.SecurityContext;
 import javax.validation.constraints.*;
 
 public abstract class FakeApiService {
+    public abstract Response createXmlItem(XmlItem xmlItem,SecurityContext securityContext) throws NotFoundException;
     public abstract Response fakeOuterBooleanSerialize(Boolean body,SecurityContext securityContext) throws NotFoundException;
     public abstract Response fakeOuterCompositeSerialize(OuterComposite body,SecurityContext securityContext) throws NotFoundException;
     public abstract Response fakeOuterNumberSerialize(BigDecimal body,SecurityContext securityContext) throws NotFoundException;
diff --git a/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..a72c63cd1cb084b480b8e3b10bb3264c03b34ce5
--- /dev/null
+++ b/samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,868 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem  implements Serializable {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+   **/
+  @JsonProperty("attribute_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+   **/
+  @JsonProperty("attribute_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+   **/
+  @JsonProperty("attribute_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+   **/
+  @JsonProperty("attribute_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+   **/
+  @JsonProperty("wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+   **/
+  @JsonProperty("name_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+   **/
+  @JsonProperty("name_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+   **/
+  @JsonProperty("name_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+   **/
+  @JsonProperty("name_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+   **/
+  @JsonProperty("name_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+   **/
+  @JsonProperty("name_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+   **/
+  @JsonProperty("prefix_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+   **/
+  @JsonProperty("prefix_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+   **/
+  @JsonProperty("prefix_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+   **/
+  @JsonProperty("prefix_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+   **/
+  @JsonProperty("prefix_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+   **/
+  @JsonProperty("prefix_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+   **/
+  @JsonProperty("namespace_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+   **/
+  @JsonProperty("namespace_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+   **/
+  @JsonProperty("namespace_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+   **/
+  @JsonProperty("namespace_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+   **/
+  @JsonProperty("namespace_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+   **/
+  @JsonProperty("namespace_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+   **/
+  @JsonProperty("prefix_ns_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+   **/
+  @JsonProperty("prefix_ns_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+   **/
+  @JsonProperty("prefix_ns_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+   **/
+  @JsonProperty("prefix_ns_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+   **/
+  @JsonProperty("prefix_ns_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+   **/
+  @JsonProperty("prefix_ns_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/jaxrs-datelib-j8/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs-datelib-j8/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
index 10af6942a98fb2c45b2f56e558bcd8a779bddbcc..cd0ac7e1e58ab6822ad97a5ba85b04559df4e997 100644
--- a/samples/server/petstore/jaxrs-datelib-j8/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
+++ b/samples/server/petstore/jaxrs-datelib-j8/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
@@ -13,6 +13,7 @@ import org.openapitools.model.ModelApiResponse;
 import java.time.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.List;
 import org.openapitools.api.NotFoundException;
@@ -26,6 +27,11 @@ import javax.ws.rs.core.SecurityContext;
 import javax.validation.constraints.*;
 
 public class FakeApiServiceImpl extends FakeApiService {
+    @Override
+    public Response createXmlItem(XmlItem xmlItem, SecurityContext securityContext) throws NotFoundException {
+        // do some magic!
+        return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build();
+    }
     @Override
     public Response fakeOuterBooleanSerialize(Boolean body, SecurityContext securityContext) throws NotFoundException {
         // do some magic!
diff --git a/samples/server/petstore/jaxrs-spec-interface/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs-spec-interface/src/gen/java/org/openapitools/api/FakeApi.java
index 5d8780f2ee7d3a8dd317f87496dc602746e8bad7..a9cd9dd5555ddec79cd9dd20accffcf7f655d665 100644
--- a/samples/server/petstore/jaxrs-spec-interface/src/gen/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/jaxrs-spec-interface/src/gen/java/org/openapitools/api/FakeApi.java
@@ -10,6 +10,7 @@ import java.util.Map;
 import org.openapitools.model.ModelApiResponse;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import javax.ws.rs.*;
 import javax.ws.rs.core.Response;
@@ -26,6 +27,14 @@ import javax.validation.Valid;
 @Api(description = "the fake API")
 public interface FakeApi {
 
+    @POST
+    @Path("/create_xml_item")
+    @Consumes({ "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" })
+    @ApiOperation(value = "creates an XmlItem", notes = "this route creates an XmlItem", tags={ "fake",  })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation", response = Void.class) })
+    void createXmlItem(@Valid XmlItem xmlItem);
+
     @POST
     @Path("/outer/boolean")
     @Produces({ "*/*" })
diff --git a/samples/server/petstore/jaxrs-spec-interface/src/gen/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/jaxrs-spec-interface/src/gen/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..ea8eff5cb1062cb8e21f9856f80f6515dc10a0e2
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-interface/src/gen/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,640 @@
+package org.openapitools.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import io.swagger.annotations.*;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+
+
+public class XmlItem  implements Serializable {
+  
+  private @Valid String attributeString;
+  private @Valid BigDecimal attributeNumber;
+  private @Valid Integer attributeInteger;
+  private @Valid Boolean attributeBoolean;
+  private @Valid List<Integer> wrappedArray = new ArrayList<Integer>();
+  private @Valid String nameString;
+  private @Valid BigDecimal nameNumber;
+  private @Valid Integer nameInteger;
+  private @Valid Boolean nameBoolean;
+  private @Valid List<Integer> nameArray = new ArrayList<Integer>();
+  private @Valid List<Integer> nameWrappedArray = new ArrayList<Integer>();
+  private @Valid String prefixString;
+  private @Valid BigDecimal prefixNumber;
+  private @Valid Integer prefixInteger;
+  private @Valid Boolean prefixBoolean;
+  private @Valid List<Integer> prefixArray = new ArrayList<Integer>();
+  private @Valid List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+  private @Valid String namespaceString;
+  private @Valid BigDecimal namespaceNumber;
+  private @Valid Integer namespaceInteger;
+  private @Valid Boolean namespaceBoolean;
+  private @Valid List<Integer> namespaceArray = new ArrayList<Integer>();
+  private @Valid List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+  private @Valid String prefixNsString;
+  private @Valid BigDecimal prefixNsNumber;
+  private @Valid Integer prefixNsInteger;
+  private @Valid Boolean prefixNsBoolean;
+  private @Valid List<Integer> prefixNsArray = new ArrayList<Integer>();
+  private @Valid List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  /**
+   **/
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty("attribute_string")
+  public String getAttributeString() {
+    return attributeString;
+  }
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  /**
+   **/
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty("attribute_number")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  /**
+   **/
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty("attribute_integer")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  /**
+   **/
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty("attribute_boolean")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  /**
+   **/
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("wrapped_array")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  /**
+   **/
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty("name_string")
+  public String getNameString() {
+    return nameString;
+  }
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  /**
+   **/
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty("name_number")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  /**
+   **/
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty("name_integer")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  /**
+   **/
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty("name_boolean")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  /**
+   **/
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("name_array")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  /**
+   **/
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("name_wrapped_array")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  /**
+   **/
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty("prefix_string")
+  public String getPrefixString() {
+    return prefixString;
+  }
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty("prefix_number")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  /**
+   **/
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty("prefix_integer")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  /**
+   **/
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty("prefix_boolean")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  /**
+   **/
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("prefix_array")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  /**
+   **/
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("prefix_wrapped_array")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty("namespace_string")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty("namespace_number")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty("namespace_integer")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty("namespace_boolean")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("namespace_array")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("namespace_wrapped_array")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty("prefix_ns_string")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty("prefix_ns_number")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty("prefix_ns_integer")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty("prefix_ns_boolean")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("prefix_ns_array")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("prefix_ns_wrapped_array")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(attributeString, xmlItem.attributeString) &&
+        Objects.equals(attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(nameString, xmlItem.nameString) &&
+        Objects.equals(nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(nameArray, xmlItem.nameArray) &&
+        Objects.equals(nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(prefixString, xmlItem.prefixString) &&
+        Objects.equals(prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-interface/src/main/openapi/openapi.yaml b/samples/server/petstore/jaxrs-spec-interface/src/main/openapi/openapi.yaml
index 49efe045ccae805fda0eab407ee53546e52d83a4..7d41adeb581f5d72ef356ee42e8e806dc41157ea 100644
--- a/samples/server/petstore/jaxrs-spec-interface/src/main/openapi/openapi.yaml
+++ b/samples/server/petstore/jaxrs-spec-interface/src/main/openapi/openapi.yaml
@@ -1078,6 +1078,42 @@ paths:
       x-codegen-request-body-name: body
       x-tags:
       - tag: fake
+  /fake/create_xml_item:
+    post:
+      description: this route creates an XmlItem
+      operationId: createXmlItem
+      requestBody:
+        content:
+          application/xml:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          application/xml; charset=utf-8:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          application/xml; charset=utf-16:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml; charset=utf-8:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml; charset=utf-16:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+        description: XmlItem Body
+        required: true
+      responses:
+        200:
+          content: {}
+          description: successful operation
+      summary: creates an XmlItem
+      tags:
+      - fake
+      x-codegen-request-body-name: XmlItem
+      x-tags:
+      - tag: fake
   /another-fake/dummy:
     patch:
       description: To test special tags and operation ID starting with number
@@ -1771,6 +1807,185 @@ components:
       - number_item
       - string_item
       type: object
+    XmlItem:
+      properties:
+        attribute_string:
+          example: string
+          type: string
+          xml:
+            attribute: true
+        attribute_number:
+          example: 1.234
+          type: number
+          xml:
+            attribute: true
+        attribute_integer:
+          example: -2
+          type: integer
+          xml:
+            attribute: true
+        attribute_boolean:
+          example: true
+          type: boolean
+          xml:
+            attribute: true
+        wrapped_array:
+          items:
+            type: integer
+          type: array
+          xml:
+            wrapped: true
+        name_string:
+          example: string
+          type: string
+          xml:
+            name: xml_name_string
+        name_number:
+          example: 1.234
+          type: number
+          xml:
+            name: xml_name_number
+        name_integer:
+          example: -2
+          type: integer
+          xml:
+            name: xml_name_integer
+        name_boolean:
+          example: true
+          type: boolean
+          xml:
+            name: xml_name_boolean
+        name_array:
+          items:
+            type: integer
+            xml:
+              name: xml_name_array_item
+          type: array
+        name_wrapped_array:
+          items:
+            type: integer
+            xml:
+              name: xml_name_wrapped_array_item
+          type: array
+          xml:
+            name: xml_name_wrapped_array
+            wrapped: true
+        prefix_string:
+          example: string
+          type: string
+          xml:
+            prefix: ab
+        prefix_number:
+          example: 1.234
+          type: number
+          xml:
+            prefix: cd
+        prefix_integer:
+          example: -2
+          type: integer
+          xml:
+            prefix: ef
+        prefix_boolean:
+          example: true
+          type: boolean
+          xml:
+            prefix: gh
+        prefix_array:
+          items:
+            type: integer
+            xml:
+              prefix: ij
+          type: array
+        prefix_wrapped_array:
+          items:
+            type: integer
+            xml:
+              prefix: mn
+          type: array
+          xml:
+            prefix: kl
+            wrapped: true
+        namespace_string:
+          example: string
+          type: string
+          xml:
+            namespace: http://a.com/schema
+        namespace_number:
+          example: 1.234
+          type: number
+          xml:
+            namespace: http://b.com/schema
+        namespace_integer:
+          example: -2
+          type: integer
+          xml:
+            namespace: http://c.com/schema
+        namespace_boolean:
+          example: true
+          type: boolean
+          xml:
+            namespace: http://d.com/schema
+        namespace_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://e.com/schema
+          type: array
+        namespace_wrapped_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://g.com/schema
+          type: array
+          xml:
+            namespace: http://f.com/schema
+            wrapped: true
+        prefix_ns_string:
+          example: string
+          type: string
+          xml:
+            namespace: http://a.com/schema
+            prefix: a
+        prefix_ns_number:
+          example: 1.234
+          type: number
+          xml:
+            namespace: http://b.com/schema
+            prefix: b
+        prefix_ns_integer:
+          example: -2
+          type: integer
+          xml:
+            namespace: http://c.com/schema
+            prefix: c
+        prefix_ns_boolean:
+          example: true
+          type: boolean
+          xml:
+            namespace: http://d.com/schema
+            prefix: d
+        prefix_ns_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://e.com/schema
+              prefix: e
+          type: array
+        prefix_ns_wrapped_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://g.com/schema
+              prefix: g
+          type: array
+          xml:
+            namespace: http://f.com/schema
+            prefix: f
+            wrapped: true
+      type: object
+      xml:
+        namespace: http://a.com/schema
+        prefix: pre
   securitySchemes:
     petstore_auth:
       flows:
diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs-spec/src/gen/java/org/openapitools/api/FakeApi.java
index a927f667599bbea9aabbd3e00e34d3e32c08abb3..02e8b8a43c6ae9f6698c89fd8e6d8765ef15f5f4 100644
--- a/samples/server/petstore/jaxrs-spec/src/gen/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/jaxrs-spec/src/gen/java/org/openapitools/api/FakeApi.java
@@ -10,6 +10,7 @@ import java.util.Map;
 import org.openapitools.model.ModelApiResponse;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import javax.ws.rs.*;
 import javax.ws.rs.core.Response;
@@ -26,6 +27,17 @@ import javax.validation.Valid;
 @Api(description = "the fake API")
 public class FakeApi {
 
+    @POST
+    @Path("/create_xml_item")
+    @Consumes({ "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" })
+    @ApiOperation(value = "creates an XmlItem", notes = "this route creates an XmlItem", response = Void.class, tags={ "fake",  })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation", response = Void.class)
+    })
+    public Response createXmlItem(@Valid XmlItem xmlItem) {
+        return Response.ok().entity("magic!").build();
+    }
+
     @POST
     @Path("/outer/boolean")
     @Produces({ "*/*" })
diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/jaxrs-spec/src/gen/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..ea8eff5cb1062cb8e21f9856f80f6515dc10a0e2
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec/src/gen/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,640 @@
+package org.openapitools.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import io.swagger.annotations.*;
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+
+
+public class XmlItem  implements Serializable {
+  
+  private @Valid String attributeString;
+  private @Valid BigDecimal attributeNumber;
+  private @Valid Integer attributeInteger;
+  private @Valid Boolean attributeBoolean;
+  private @Valid List<Integer> wrappedArray = new ArrayList<Integer>();
+  private @Valid String nameString;
+  private @Valid BigDecimal nameNumber;
+  private @Valid Integer nameInteger;
+  private @Valid Boolean nameBoolean;
+  private @Valid List<Integer> nameArray = new ArrayList<Integer>();
+  private @Valid List<Integer> nameWrappedArray = new ArrayList<Integer>();
+  private @Valid String prefixString;
+  private @Valid BigDecimal prefixNumber;
+  private @Valid Integer prefixInteger;
+  private @Valid Boolean prefixBoolean;
+  private @Valid List<Integer> prefixArray = new ArrayList<Integer>();
+  private @Valid List<Integer> prefixWrappedArray = new ArrayList<Integer>();
+  private @Valid String namespaceString;
+  private @Valid BigDecimal namespaceNumber;
+  private @Valid Integer namespaceInteger;
+  private @Valid Boolean namespaceBoolean;
+  private @Valid List<Integer> namespaceArray = new ArrayList<Integer>();
+  private @Valid List<Integer> namespaceWrappedArray = new ArrayList<Integer>();
+  private @Valid String prefixNsString;
+  private @Valid BigDecimal prefixNsNumber;
+  private @Valid Integer prefixNsInteger;
+  private @Valid Boolean prefixNsBoolean;
+  private @Valid List<Integer> prefixNsArray = new ArrayList<Integer>();
+  private @Valid List<Integer> prefixNsWrappedArray = new ArrayList<Integer>();
+
+  /**
+   **/
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty("attribute_string")
+  public String getAttributeString() {
+    return attributeString;
+  }
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  /**
+   **/
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty("attribute_number")
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  /**
+   **/
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty("attribute_integer")
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  /**
+   **/
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty("attribute_boolean")
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  /**
+   **/
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("wrapped_array")
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  /**
+   **/
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty("name_string")
+  public String getNameString() {
+    return nameString;
+  }
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  /**
+   **/
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty("name_number")
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  /**
+   **/
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty("name_integer")
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  /**
+   **/
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty("name_boolean")
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  /**
+   **/
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("name_array")
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  /**
+   **/
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("name_wrapped_array")
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  /**
+   **/
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty("prefix_string")
+  public String getPrefixString() {
+    return prefixString;
+  }
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty("prefix_number")
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  /**
+   **/
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty("prefix_integer")
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  /**
+   **/
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty("prefix_boolean")
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  /**
+   **/
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("prefix_array")
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  /**
+   **/
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("prefix_wrapped_array")
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty("namespace_string")
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty("namespace_number")
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty("namespace_integer")
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty("namespace_boolean")
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("namespace_array")
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  /**
+   **/
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("namespace_wrapped_array")
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty("prefix_ns_string")
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty("prefix_ns_number")
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty("prefix_ns_integer")
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty("prefix_ns_boolean")
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("prefix_ns_array")
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  /**
+   **/
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  
+  @ApiModelProperty(value = "")
+  @JsonProperty("prefix_ns_wrapped_array")
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(attributeString, xmlItem.attributeString) &&
+        Objects.equals(attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(nameString, xmlItem.nameString) &&
+        Objects.equals(nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(nameArray, xmlItem.nameArray) &&
+        Objects.equals(nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(prefixString, xmlItem.prefixString) &&
+        Objects.equals(prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec/src/main/openapi/openapi.yaml b/samples/server/petstore/jaxrs-spec/src/main/openapi/openapi.yaml
index 49efe045ccae805fda0eab407ee53546e52d83a4..7d41adeb581f5d72ef356ee42e8e806dc41157ea 100644
--- a/samples/server/petstore/jaxrs-spec/src/main/openapi/openapi.yaml
+++ b/samples/server/petstore/jaxrs-spec/src/main/openapi/openapi.yaml
@@ -1078,6 +1078,42 @@ paths:
       x-codegen-request-body-name: body
       x-tags:
       - tag: fake
+  /fake/create_xml_item:
+    post:
+      description: this route creates an XmlItem
+      operationId: createXmlItem
+      requestBody:
+        content:
+          application/xml:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          application/xml; charset=utf-8:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          application/xml; charset=utf-16:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml; charset=utf-8:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml; charset=utf-16:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+        description: XmlItem Body
+        required: true
+      responses:
+        200:
+          content: {}
+          description: successful operation
+      summary: creates an XmlItem
+      tags:
+      - fake
+      x-codegen-request-body-name: XmlItem
+      x-tags:
+      - tag: fake
   /another-fake/dummy:
     patch:
       description: To test special tags and operation ID starting with number
@@ -1771,6 +1807,185 @@ components:
       - number_item
       - string_item
       type: object
+    XmlItem:
+      properties:
+        attribute_string:
+          example: string
+          type: string
+          xml:
+            attribute: true
+        attribute_number:
+          example: 1.234
+          type: number
+          xml:
+            attribute: true
+        attribute_integer:
+          example: -2
+          type: integer
+          xml:
+            attribute: true
+        attribute_boolean:
+          example: true
+          type: boolean
+          xml:
+            attribute: true
+        wrapped_array:
+          items:
+            type: integer
+          type: array
+          xml:
+            wrapped: true
+        name_string:
+          example: string
+          type: string
+          xml:
+            name: xml_name_string
+        name_number:
+          example: 1.234
+          type: number
+          xml:
+            name: xml_name_number
+        name_integer:
+          example: -2
+          type: integer
+          xml:
+            name: xml_name_integer
+        name_boolean:
+          example: true
+          type: boolean
+          xml:
+            name: xml_name_boolean
+        name_array:
+          items:
+            type: integer
+            xml:
+              name: xml_name_array_item
+          type: array
+        name_wrapped_array:
+          items:
+            type: integer
+            xml:
+              name: xml_name_wrapped_array_item
+          type: array
+          xml:
+            name: xml_name_wrapped_array
+            wrapped: true
+        prefix_string:
+          example: string
+          type: string
+          xml:
+            prefix: ab
+        prefix_number:
+          example: 1.234
+          type: number
+          xml:
+            prefix: cd
+        prefix_integer:
+          example: -2
+          type: integer
+          xml:
+            prefix: ef
+        prefix_boolean:
+          example: true
+          type: boolean
+          xml:
+            prefix: gh
+        prefix_array:
+          items:
+            type: integer
+            xml:
+              prefix: ij
+          type: array
+        prefix_wrapped_array:
+          items:
+            type: integer
+            xml:
+              prefix: mn
+          type: array
+          xml:
+            prefix: kl
+            wrapped: true
+        namespace_string:
+          example: string
+          type: string
+          xml:
+            namespace: http://a.com/schema
+        namespace_number:
+          example: 1.234
+          type: number
+          xml:
+            namespace: http://b.com/schema
+        namespace_integer:
+          example: -2
+          type: integer
+          xml:
+            namespace: http://c.com/schema
+        namespace_boolean:
+          example: true
+          type: boolean
+          xml:
+            namespace: http://d.com/schema
+        namespace_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://e.com/schema
+          type: array
+        namespace_wrapped_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://g.com/schema
+          type: array
+          xml:
+            namespace: http://f.com/schema
+            wrapped: true
+        prefix_ns_string:
+          example: string
+          type: string
+          xml:
+            namespace: http://a.com/schema
+            prefix: a
+        prefix_ns_number:
+          example: 1.234
+          type: number
+          xml:
+            namespace: http://b.com/schema
+            prefix: b
+        prefix_ns_integer:
+          example: -2
+          type: integer
+          xml:
+            namespace: http://c.com/schema
+            prefix: c
+        prefix_ns_boolean:
+          example: true
+          type: boolean
+          xml:
+            namespace: http://d.com/schema
+            prefix: d
+        prefix_ns_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://e.com/schema
+              prefix: e
+          type: array
+        prefix_ns_wrapped_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://g.com/schema
+              prefix: g
+          type: array
+          xml:
+            namespace: http://f.com/schema
+            prefix: f
+            wrapped: true
+      type: object
+      xml:
+        namespace: http://a.com/schema
+        prefix: pre
   securitySchemes:
     petstore_auth:
       flows:
diff --git a/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApi.java
index 4da0f8bd8b56f70d47a59e94b15cdb86a2fdad6b..22fed36491e7dc3784692f4f0867c9195bc8a00f 100644
--- a/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import org.openapitools.model.FileSchemaTestClass;
 import java.util.Map;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.Map;
 import java.util.List;
@@ -40,6 +41,19 @@ import javax.validation.Valid;
 public class FakeApi  {
    private final FakeApiService delegate = FakeApiServiceFactory.getFakeApi();
 
+    @POST
+    @Path("/create_xml_item")
+    @Consumes({ "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" })
+    
+    @io.swagger.annotations.ApiOperation(value = "creates an XmlItem", notes = "this route creates an XmlItem", response = Void.class, tags={ "fake",  })
+    @io.swagger.annotations.ApiResponses(value = { 
+        @io.swagger.annotations.ApiResponse(code = 200, message = "successful operation", response = Void.class) })
+    public Response createXmlItem(
+        @ApiParam(value = "XmlItem Body" ,required=true) @Valid XmlItem xmlItem,
+        @Context SecurityContext securityContext)
+    throws NotFoundException {
+        return delegate.createXmlItem(xmlItem,securityContext);
+    }
     @POST
     @Path("/outer/boolean")
     
diff --git a/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApiService.java b/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApiService.java
index e6aefcb7e4aa2c81c18fc79a2e68d0843c634a12..95092e85b4fd6aa3f88a3183f73cd661e9396737 100644
--- a/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApiService.java
+++ b/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/api/FakeApiService.java
@@ -13,6 +13,7 @@ import org.openapitools.model.FileSchemaTestClass;
 import java.util.Map;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.List;
 import org.openapitools.api.NotFoundException;
@@ -27,6 +28,8 @@ import javax.ws.rs.core.SecurityContext;
 import javax.validation.constraints.*;
 
 public abstract class FakeApiService {
+      public abstract Response createXmlItem(XmlItem xmlItem,SecurityContext securityContext)
+      throws NotFoundException;
       public abstract Response fakeOuterBooleanSerialize(Boolean body,SecurityContext securityContext)
       throws NotFoundException;
       public abstract Response fakeOuterCompositeSerialize(OuterComposite body,SecurityContext securityContext)
diff --git a/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..a50e27d4cf8224f4db476bb309bd4625e7974d95
--- /dev/null
+++ b/samples/server/petstore/jaxrs/jersey1-useTags/src/gen/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,867 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+   **/
+  @JsonProperty("attribute_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+   **/
+  @JsonProperty("attribute_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+   **/
+  @JsonProperty("attribute_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+   **/
+  @JsonProperty("attribute_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+   **/
+  @JsonProperty("wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+   **/
+  @JsonProperty("name_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+   **/
+  @JsonProperty("name_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+   **/
+  @JsonProperty("name_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+   **/
+  @JsonProperty("name_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+   **/
+  @JsonProperty("name_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+   **/
+  @JsonProperty("name_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+   **/
+  @JsonProperty("prefix_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+   **/
+  @JsonProperty("prefix_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+   **/
+  @JsonProperty("prefix_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+   **/
+  @JsonProperty("prefix_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+   **/
+  @JsonProperty("prefix_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+   **/
+  @JsonProperty("prefix_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+   **/
+  @JsonProperty("namespace_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+   **/
+  @JsonProperty("namespace_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+   **/
+  @JsonProperty("namespace_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+   **/
+  @JsonProperty("namespace_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+   **/
+  @JsonProperty("namespace_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+   **/
+  @JsonProperty("namespace_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+   **/
+  @JsonProperty("prefix_ns_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+   **/
+  @JsonProperty("prefix_ns_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+   **/
+  @JsonProperty("prefix_ns_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+   **/
+  @JsonProperty("prefix_ns_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+   **/
+  @JsonProperty("prefix_ns_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+   **/
+  @JsonProperty("prefix_ns_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/jaxrs/jersey1-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs/jersey1-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
index 480fe403e3859352a13b3930dad537dbd700129f..210912ff3b7dcfd52534d7d9d9b10b8d0bba9769 100644
--- a/samples/server/petstore/jaxrs/jersey1-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
+++ b/samples/server/petstore/jaxrs/jersey1-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
@@ -13,6 +13,7 @@ import org.openapitools.model.FileSchemaTestClass;
 import java.util.Map;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.List;
 import org.openapitools.api.NotFoundException;
@@ -27,6 +28,12 @@ import javax.ws.rs.core.SecurityContext;
 import javax.validation.constraints.*;
 
 public class FakeApiServiceImpl extends FakeApiService {
+    @Override
+    public Response createXmlItem(XmlItem xmlItem, SecurityContext securityContext)
+    throws NotFoundException {
+        // do some magic!
+        return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build();
+    }
     @Override
     public Response fakeOuterBooleanSerialize(Boolean body, SecurityContext securityContext)
     throws NotFoundException {
diff --git a/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApi.java
index c1278998bace3965059d6eb420fb8a4be9f9146b..cc144b42de72a5ad9c3c96621606c61dd3ccb32e 100644
--- a/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApi.java
@@ -16,6 +16,7 @@ import java.util.Map;
 import org.openapitools.model.ModelApiResponse;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.Map;
 import java.util.List;
@@ -41,6 +42,19 @@ import javax.validation.Valid;
 public class FakeApi  {
    private final FakeApiService delegate = FakeApiServiceFactory.getFakeApi();
 
+    @POST
+    @Path("/create_xml_item")
+    @Consumes({ "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" })
+    
+    @io.swagger.annotations.ApiOperation(value = "creates an XmlItem", notes = "this route creates an XmlItem", response = Void.class, tags={ "fake",  })
+    @io.swagger.annotations.ApiResponses(value = { 
+        @io.swagger.annotations.ApiResponse(code = 200, message = "successful operation", response = Void.class) })
+    public Response createXmlItem(
+        @ApiParam(value = "XmlItem Body" ,required=true) @Valid XmlItem xmlItem,
+        @Context SecurityContext securityContext)
+    throws NotFoundException {
+        return delegate.createXmlItem(xmlItem,securityContext);
+    }
     @POST
     @Path("/outer/boolean")
     
diff --git a/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApiService.java b/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApiService.java
index 7c247f6e72b009958a9dd114c68272cff3b32b23..dd2132bdad1296dacbf01ff3f0c9eca8944bf984 100644
--- a/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApiService.java
+++ b/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/api/FakeApiService.java
@@ -14,6 +14,7 @@ import java.util.Map;
 import org.openapitools.model.ModelApiResponse;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.List;
 import org.openapitools.api.NotFoundException;
@@ -28,6 +29,8 @@ import javax.ws.rs.core.SecurityContext;
 import javax.validation.constraints.*;
 
 public abstract class FakeApiService {
+      public abstract Response createXmlItem(XmlItem xmlItem,SecurityContext securityContext)
+      throws NotFoundException;
       public abstract Response fakeOuterBooleanSerialize(Boolean body,SecurityContext securityContext)
       throws NotFoundException;
       public abstract Response fakeOuterCompositeSerialize(OuterComposite body,SecurityContext securityContext)
diff --git a/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..a50e27d4cf8224f4db476bb309bd4625e7974d95
--- /dev/null
+++ b/samples/server/petstore/jaxrs/jersey1/src/gen/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,867 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+   **/
+  @JsonProperty("attribute_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+   **/
+  @JsonProperty("attribute_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+   **/
+  @JsonProperty("attribute_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+   **/
+  @JsonProperty("attribute_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+   **/
+  @JsonProperty("wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+   **/
+  @JsonProperty("name_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+   **/
+  @JsonProperty("name_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+   **/
+  @JsonProperty("name_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+   **/
+  @JsonProperty("name_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+   **/
+  @JsonProperty("name_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+   **/
+  @JsonProperty("name_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+   **/
+  @JsonProperty("prefix_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+   **/
+  @JsonProperty("prefix_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+   **/
+  @JsonProperty("prefix_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+   **/
+  @JsonProperty("prefix_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+   **/
+  @JsonProperty("prefix_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+   **/
+  @JsonProperty("prefix_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+   **/
+  @JsonProperty("namespace_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+   **/
+  @JsonProperty("namespace_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+   **/
+  @JsonProperty("namespace_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+   **/
+  @JsonProperty("namespace_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+   **/
+  @JsonProperty("namespace_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+   **/
+  @JsonProperty("namespace_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+   **/
+  @JsonProperty("prefix_ns_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+   **/
+  @JsonProperty("prefix_ns_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+   **/
+  @JsonProperty("prefix_ns_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+   **/
+  @JsonProperty("prefix_ns_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+   **/
+  @JsonProperty("prefix_ns_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+   **/
+  @JsonProperty("prefix_ns_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/jaxrs/jersey1/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs/jersey1/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
index 1b8233ce2d3b2955b373f046d1f0316fa0ae832b..258dbb0f864762e4b1ee2b71c9a82a2b16dfe051 100644
--- a/samples/server/petstore/jaxrs/jersey1/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
+++ b/samples/server/petstore/jaxrs/jersey1/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
@@ -14,6 +14,7 @@ import java.util.Map;
 import org.openapitools.model.ModelApiResponse;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.List;
 import org.openapitools.api.NotFoundException;
@@ -28,6 +29,12 @@ import javax.ws.rs.core.SecurityContext;
 import javax.validation.constraints.*;
 
 public class FakeApiServiceImpl extends FakeApiService {
+    @Override
+    public Response createXmlItem(XmlItem xmlItem, SecurityContext securityContext)
+    throws NotFoundException {
+        // do some magic!
+        return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build();
+    }
     @Override
     public Response fakeOuterBooleanSerialize(Boolean body, SecurityContext securityContext)
     throws NotFoundException {
diff --git a/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApi.java
index 2953f280ce8cd3a97b023d7a57289653f5c8b60a..814f95f5c830181766b97f0afe1440bcbea87fa4 100644
--- a/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import org.openapitools.model.FileSchemaTestClass;
 import java.util.Map;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.Map;
 import java.util.List;
@@ -62,6 +63,18 @@ public class FakeApi  {
       this.delegate = delegate;
    }
 
+    @POST
+    @Path("/create_xml_item")
+    @Consumes({ "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" })
+    
+    @io.swagger.annotations.ApiOperation(value = "creates an XmlItem", notes = "this route creates an XmlItem", response = Void.class, tags={ "fake", })
+    @io.swagger.annotations.ApiResponses(value = { 
+        @io.swagger.annotations.ApiResponse(code = 200, message = "successful operation", response = Void.class) })
+    public Response createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true) @Valid XmlItem xmlItem
+,@Context SecurityContext securityContext)
+    throws NotFoundException {
+        return delegate.createXmlItem(xmlItem,securityContext);
+    }
     @POST
     @Path("/outer/boolean")
     
diff --git a/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApiService.java b/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApiService.java
index ef2ef8913ea1bc0b9ba21bb338b40c9c44054c15..dd457eb201fb0c9729a818c0cc3651b9d25a7f29 100644
--- a/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApiService.java
+++ b/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/api/FakeApiService.java
@@ -13,6 +13,7 @@ import org.openapitools.model.FileSchemaTestClass;
 import java.util.Map;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.List;
 import org.openapitools.api.NotFoundException;
@@ -24,6 +25,7 @@ import javax.ws.rs.core.SecurityContext;
 import javax.validation.constraints.*;
 
 public abstract class FakeApiService {
+    public abstract Response createXmlItem(XmlItem xmlItem,SecurityContext securityContext) throws NotFoundException;
     public abstract Response fakeOuterBooleanSerialize(Boolean body,SecurityContext securityContext) throws NotFoundException;
     public abstract Response fakeOuterCompositeSerialize(OuterComposite body,SecurityContext securityContext) throws NotFoundException;
     public abstract Response fakeOuterNumberSerialize(BigDecimal body,SecurityContext securityContext) throws NotFoundException;
diff --git a/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..a50e27d4cf8224f4db476bb309bd4625e7974d95
--- /dev/null
+++ b/samples/server/petstore/jaxrs/jersey2-useTags/src/gen/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,867 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+   **/
+  @JsonProperty("attribute_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+   **/
+  @JsonProperty("attribute_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+   **/
+  @JsonProperty("attribute_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+   **/
+  @JsonProperty("attribute_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+   **/
+  @JsonProperty("wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+   **/
+  @JsonProperty("name_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+   **/
+  @JsonProperty("name_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+   **/
+  @JsonProperty("name_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+   **/
+  @JsonProperty("name_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+   **/
+  @JsonProperty("name_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+   **/
+  @JsonProperty("name_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+   **/
+  @JsonProperty("prefix_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+   **/
+  @JsonProperty("prefix_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+   **/
+  @JsonProperty("prefix_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+   **/
+  @JsonProperty("prefix_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+   **/
+  @JsonProperty("prefix_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+   **/
+  @JsonProperty("prefix_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+   **/
+  @JsonProperty("namespace_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+   **/
+  @JsonProperty("namespace_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+   **/
+  @JsonProperty("namespace_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+   **/
+  @JsonProperty("namespace_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+   **/
+  @JsonProperty("namespace_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+   **/
+  @JsonProperty("namespace_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+   **/
+  @JsonProperty("prefix_ns_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+   **/
+  @JsonProperty("prefix_ns_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+   **/
+  @JsonProperty("prefix_ns_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+   **/
+  @JsonProperty("prefix_ns_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+   **/
+  @JsonProperty("prefix_ns_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+   **/
+  @JsonProperty("prefix_ns_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/jaxrs/jersey2-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs/jersey2-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
index b56b14848c27dc321a2552979effe46b0a9e3be6..fd583260f591f900984d37ff8f9a579225d7d901 100644
--- a/samples/server/petstore/jaxrs/jersey2-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
+++ b/samples/server/petstore/jaxrs/jersey2-useTags/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
@@ -11,6 +11,7 @@ import org.openapitools.model.FileSchemaTestClass;
 import java.util.Map;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.List;
 import org.openapitools.api.NotFoundException;
@@ -24,6 +25,11 @@ import javax.ws.rs.core.SecurityContext;
 import javax.validation.constraints.*;
 
 public class FakeApiServiceImpl extends FakeApiService {
+    @Override
+    public Response createXmlItem(XmlItem xmlItem, SecurityContext securityContext) throws NotFoundException {
+        // do some magic!
+        return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build();
+    }
     @Override
     public Response fakeOuterBooleanSerialize(Boolean body, SecurityContext securityContext) throws NotFoundException {
         // do some magic!
diff --git a/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApi.java
index 7c7a80b287d8b4150a21659af938db24c809a864..4d256a697694ffbc0b2156b26d2e4cbee4a78fcd 100644
--- a/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApi.java
@@ -16,6 +16,7 @@ import java.util.Map;
 import org.openapitools.model.ModelApiResponse;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.Map;
 import java.util.List;
@@ -63,6 +64,18 @@ public class FakeApi  {
       this.delegate = delegate;
    }
 
+    @POST
+    @Path("/create_xml_item")
+    @Consumes({ "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" })
+    
+    @io.swagger.annotations.ApiOperation(value = "creates an XmlItem", notes = "this route creates an XmlItem", response = Void.class, tags={ "fake", })
+    @io.swagger.annotations.ApiResponses(value = { 
+        @io.swagger.annotations.ApiResponse(code = 200, message = "successful operation", response = Void.class) })
+    public Response createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true) @Valid XmlItem xmlItem
+,@Context SecurityContext securityContext)
+    throws NotFoundException {
+        return delegate.createXmlItem(xmlItem,securityContext);
+    }
     @POST
     @Path("/outer/boolean")
     
diff --git a/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApiService.java b/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApiService.java
index 201c55128ce73c1ba666e02faf0d0d0af3398f83..9b2c44ef2a7a05306ef48c25f35a02de4caca909 100644
--- a/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApiService.java
+++ b/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/api/FakeApiService.java
@@ -14,6 +14,7 @@ import java.util.Map;
 import org.openapitools.model.ModelApiResponse;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.List;
 import org.openapitools.api.NotFoundException;
@@ -25,6 +26,7 @@ import javax.ws.rs.core.SecurityContext;
 import javax.validation.constraints.*;
 
 public abstract class FakeApiService {
+    public abstract Response createXmlItem(XmlItem xmlItem,SecurityContext securityContext) throws NotFoundException;
     public abstract Response fakeOuterBooleanSerialize(Boolean body,SecurityContext securityContext) throws NotFoundException;
     public abstract Response fakeOuterCompositeSerialize(OuterComposite body,SecurityContext securityContext) throws NotFoundException;
     public abstract Response fakeOuterNumberSerialize(BigDecimal body,SecurityContext securityContext) throws NotFoundException;
diff --git a/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..a50e27d4cf8224f4db476bb309bd4625e7974d95
--- /dev/null
+++ b/samples/server/petstore/jaxrs/jersey2/src/gen/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,867 @@
+/*
+ * OpenAPI Petstore
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+   **/
+  @JsonProperty("attribute_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+   **/
+  @JsonProperty("attribute_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+   **/
+  @JsonProperty("attribute_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+   **/
+  @JsonProperty("attribute_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+   **/
+  @JsonProperty("wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+   **/
+  @JsonProperty("name_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+   **/
+  @JsonProperty("name_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+   **/
+  @JsonProperty("name_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+   **/
+  @JsonProperty("name_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+   **/
+  @JsonProperty("name_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+   **/
+  @JsonProperty("name_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+   **/
+  @JsonProperty("prefix_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+   **/
+  @JsonProperty("prefix_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+   **/
+  @JsonProperty("prefix_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+   **/
+  @JsonProperty("prefix_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+   **/
+  @JsonProperty("prefix_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+   **/
+  @JsonProperty("prefix_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+   **/
+  @JsonProperty("namespace_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+   **/
+  @JsonProperty("namespace_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+   **/
+  @JsonProperty("namespace_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+   **/
+  @JsonProperty("namespace_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+   **/
+  @JsonProperty("namespace_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+   **/
+  @JsonProperty("namespace_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+   **/
+  @JsonProperty("prefix_ns_string")
+  @ApiModelProperty(example = "string", value = "")
+  
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+   **/
+  @JsonProperty("prefix_ns_number")
+  @ApiModelProperty(example = "1.234", value = "")
+  @Valid
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+   **/
+  @JsonProperty("prefix_ns_integer")
+  @ApiModelProperty(example = "-2", value = "")
+  
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+   **/
+  @JsonProperty("prefix_ns_boolean")
+  @ApiModelProperty(example = "true", value = "")
+  
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+   **/
+  @JsonProperty("prefix_ns_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+   **/
+  @JsonProperty("prefix_ns_wrapped_array")
+  @ApiModelProperty(value = "")
+  
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/jaxrs/jersey2/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java b/samples/server/petstore/jaxrs/jersey2/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
index 1ee2fee3e18bb3d7664837f2ea45bae0ec5d5e4f..ad1d5f118e211760ca7bfe83c32bb0d34dab2ba0 100644
--- a/samples/server/petstore/jaxrs/jersey2/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
+++ b/samples/server/petstore/jaxrs/jersey2/src/main/java/org/openapitools/api/impl/FakeApiServiceImpl.java
@@ -12,6 +12,7 @@ import java.util.Map;
 import org.openapitools.model.ModelApiResponse;
 import org.openapitools.model.OuterComposite;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 
 import java.util.List;
 import org.openapitools.api.NotFoundException;
@@ -25,6 +26,11 @@ import javax.ws.rs.core.SecurityContext;
 import javax.validation.constraints.*;
 
 public class FakeApiServiceImpl extends FakeApiService {
+    @Override
+    public Response createXmlItem(XmlItem xmlItem, SecurityContext securityContext) throws NotFoundException {
+        // do some magic!
+        return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build();
+    }
     @Override
     public Response fakeOuterBooleanSerialize(Boolean body, SecurityContext securityContext) throws NotFoundException {
         // do some magic!
diff --git a/samples/server/petstore/php-lumen/lib/app/Http/Controllers/FakeApi.php b/samples/server/petstore/php-lumen/lib/app/Http/Controllers/FakeApi.php
index 61d5c4d8283450f089964f4681a597854e441deb..773927d71febfa566d5c57b6f6a57dd61c58fc5e 100644
--- a/samples/server/petstore/php-lumen/lib/app/Http/Controllers/FakeApi.php
+++ b/samples/server/petstore/php-lumen/lib/app/Http/Controllers/FakeApi.php
@@ -276,6 +276,30 @@ class FakeApi extends Controller
 
         return response('How about implementing testBodyWithQueryParams as a put method ?');
     }
+    /**
+     * Operation createXmlItem
+     *
+     * creates an XmlItem.
+     *
+     *
+     * @return Http response
+     */
+    public function createXmlItem()
+    {
+        $input = Request::all();
+
+        //path params validation
+
+
+        //not path params validation
+        if (!isset($input['xml_item'])) {
+            throw new \InvalidArgumentException('Missing the required parameter $xml_item when calling createXmlItem');
+        }
+        $xml_item = $input['xml_item'];
+
+
+        return response('How about implementing createXmlItem as a post method ?');
+    }
     /**
      * Operation testInlineAdditionalProperties
      *
diff --git a/samples/server/petstore/php-lumen/lib/routes/web.php b/samples/server/petstore/php-lumen/lib/routes/web.php
index bb7417bc2664081a4ba400ca1d144106cd2c3126..38c779294197e74f7f8e27b00a702add62e79a32 100644
--- a/samples/server/petstore/php-lumen/lib/routes/web.php
+++ b/samples/server/petstore/php-lumen/lib/routes/web.php
@@ -63,6 +63,12 @@ $router->put('/v2/fake/body-with-file-schema', 'FakeApi@testBodyWithFileSchema')
  * Notes: 
  */
 $router->put('/v2/fake/body-with-query-params', 'FakeApi@testBodyWithQueryParams');
+/**
+ * post createXmlItem
+ * Summary: creates an XmlItem
+ * Notes: this route creates an XmlItem
+ */
+$router->post('/v2/fake/create_xml_item', 'FakeApi@createXmlItem');
 /**
  * post testInlineAdditionalProperties
  * Summary: test inline additionalProperties
diff --git a/samples/server/petstore/php-slim/README.md b/samples/server/petstore/php-slim/README.md
index 3cfeadb020eda754431dcf88a52766fc4c8037d2..5d650233afcc7e591edc0f0d91bbd9be1d24a28b 100644
--- a/samples/server/petstore/php-slim/README.md
+++ b/samples/server/petstore/php-slim/README.md
@@ -114,6 +114,7 @@ For instance, when abstract class located at `./lib/Api/AbstractPetApi.php` you
 Class | Method | HTTP request | Description
 ------------ | ------------- | ------------- | -------------
 *AbstractAnotherFakeApi* | **call123TestSpecialTags** | **PATCH** /another-fake/dummy | To test special tags
+*AbstractFakeApi* | **createXmlItem** | **POST** /fake/create_xml_item | creates an XmlItem
 *AbstractFakeApi* | **fakeOuterBooleanSerialize** | **POST** /fake/outer/boolean | 
 *AbstractFakeApi* | **fakeOuterCompositeSerialize** | **POST** /fake/outer/composite | 
 *AbstractFakeApi* | **fakeOuterNumberSerialize** | **POST** /fake/outer/number | 
@@ -188,6 +189,7 @@ Class | Method | HTTP request | Description
 * OpenAPIServer\Model\TypeHolderDefault
 * OpenAPIServer\Model\TypeHolderExample
 * OpenAPIServer\Model\User
+* OpenAPIServer\Model\XmlItem
 
 
 ## Authentication
diff --git a/samples/server/petstore/php-slim/lib/Api/AbstractFakeApi.php b/samples/server/petstore/php-slim/lib/Api/AbstractFakeApi.php
index 2c9380e5424bce35a5c046526f0c56904bdb73b1..b65541f2cc1e064402c38bd73837cfcde92f9bc2 100644
--- a/samples/server/petstore/php-slim/lib/Api/AbstractFakeApi.php
+++ b/samples/server/petstore/php-slim/lib/Api/AbstractFakeApi.php
@@ -55,6 +55,27 @@ abstract class AbstractFakeApi
     }
 
 
+    /**
+     * POST createXmlItem
+     * Summary: creates an XmlItem
+     * Notes: this route creates an XmlItem
+     *
+     * @param ServerRequestInterface $request  Request
+     * @param ResponseInterface      $response Response
+     * @param array|null             $args     Path arguments
+     *
+     * @return ResponseInterface
+     * @throws Exception to force implementation class to override this method
+     */
+    public function createXmlItem(ServerRequestInterface $request, ResponseInterface $response, array $args)
+    {
+        $body = $request->getParsedBody();
+        $message = "How about implementing createXmlItem as a POST method in OpenAPIServer\Api\FakeApi class?";
+        throw new Exception($message);
+
+        return $response->write($message)->withStatus(501);
+    }
+
     /**
      * POST fakeOuterBooleanSerialize
      * Notes: Test serialization of outer boolean types
diff --git a/samples/server/petstore/php-slim/lib/Model/XmlItem.php b/samples/server/petstore/php-slim/lib/Model/XmlItem.php
new file mode 100644
index 0000000000000000000000000000000000000000..96e3c018e7312cd17a9fb533878ffd73ad065cc2
--- /dev/null
+++ b/samples/server/petstore/php-slim/lib/Model/XmlItem.php
@@ -0,0 +1,114 @@
+<?php
+/**
+ * XmlItem
+ *
+ * PHP version 7
+ *
+ * @package OpenAPIServer\Model
+ * @author  OpenAPI Generator team
+ * @link    https://github.com/openapitools/openapi-generator
+ */
+
+/**
+ * NOTE: This class is auto generated by the openapi generator program.
+ * https://github.com/openapitools/openapi-generator
+ */
+namespace OpenAPIServer\Model;
+
+/**
+ * XmlItem
+ *
+ * @package OpenAPIServer\Model
+ * @author  OpenAPI Generator team
+ * @link    https://github.com/openapitools/openapi-generator
+ */
+class XmlItem
+{
+    
+    /** @var string $attributeString */
+    private $attributeString;
+    
+    /** @var float $attributeNumber */
+    private $attributeNumber;
+    
+    /** @var int $attributeInteger */
+    private $attributeInteger;
+    
+    /** @var bool $attributeBoolean */
+    private $attributeBoolean;
+    
+    /** @var int[] $wrappedArray */
+    private $wrappedArray;
+    
+    /** @var string $nameString */
+    private $nameString;
+    
+    /** @var float $nameNumber */
+    private $nameNumber;
+    
+    /** @var int $nameInteger */
+    private $nameInteger;
+    
+    /** @var bool $nameBoolean */
+    private $nameBoolean;
+    
+    /** @var int[] $nameArray */
+    private $nameArray;
+    
+    /** @var int[] $nameWrappedArray */
+    private $nameWrappedArray;
+    
+    /** @var string $prefixString */
+    private $prefixString;
+    
+    /** @var float $prefixNumber */
+    private $prefixNumber;
+    
+    /** @var int $prefixInteger */
+    private $prefixInteger;
+    
+    /** @var bool $prefixBoolean */
+    private $prefixBoolean;
+    
+    /** @var int[] $prefixArray */
+    private $prefixArray;
+    
+    /** @var int[] $prefixWrappedArray */
+    private $prefixWrappedArray;
+    
+    /** @var string $namespaceString */
+    private $namespaceString;
+    
+    /** @var float $namespaceNumber */
+    private $namespaceNumber;
+    
+    /** @var int $namespaceInteger */
+    private $namespaceInteger;
+    
+    /** @var bool $namespaceBoolean */
+    private $namespaceBoolean;
+    
+    /** @var int[] $namespaceArray */
+    private $namespaceArray;
+    
+    /** @var int[] $namespaceWrappedArray */
+    private $namespaceWrappedArray;
+    
+    /** @var string $prefixNsString */
+    private $prefixNsString;
+    
+    /** @var float $prefixNsNumber */
+    private $prefixNsNumber;
+    
+    /** @var int $prefixNsInteger */
+    private $prefixNsInteger;
+    
+    /** @var bool $prefixNsBoolean */
+    private $prefixNsBoolean;
+    
+    /** @var int[] $prefixNsArray */
+    private $prefixNsArray;
+    
+    /** @var int[] $prefixNsWrappedArray */
+    private $prefixNsWrappedArray;
+}
diff --git a/samples/server/petstore/php-slim/lib/SlimRouter.php b/samples/server/petstore/php-slim/lib/SlimRouter.php
index 972a44de066b5975247c7d015008892045391f77..4d30e8f40a8ee26e25368eaffa428316f0d5a641 100644
--- a/samples/server/petstore/php-slim/lib/SlimRouter.php
+++ b/samples/server/petstore/php-slim/lib/SlimRouter.php
@@ -59,6 +59,17 @@ class SlimRouter
             'authMethods' => [
             ],
         ],
+        [
+            'httpMethod' => 'POST',
+            'basePathWithoutHost' => '/v2',
+            'path' => '/fake/create_xml_item',
+            'apiPackage' => 'OpenAPIServer\Api',
+            'classname' => 'AbstractFakeApi',
+            'userClassname' => 'FakeApi',
+            'operationId' => 'createXmlItem',
+            'authMethods' => [
+            ],
+        ],
         [
             'httpMethod' => 'POST',
             'basePathWithoutHost' => '/v2',
diff --git a/samples/server/petstore/php-slim/test/Model/XmlItemTest.php b/samples/server/petstore/php-slim/test/Model/XmlItemTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..6d4132210d4bdeab51e9b7619d65674f782ccdb8
--- /dev/null
+++ b/samples/server/petstore/php-slim/test/Model/XmlItemTest.php
@@ -0,0 +1,280 @@
+<?php
+/**
+ * XmlItemTest
+ *
+ * PHP version 7
+ *
+ * @package OpenAPIServer\Model
+ * @author  OpenAPI Generator team
+ * @link    https://github.com/openapitools/openapi-generator
+ */
+
+/**
+ * OpenAPI Petstore
+ *
+ * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+ * OpenAPI spec version: 1.0.0
+ * Generated by: https://github.com/openapitools/openapi-generator.git
+ */
+
+/**
+ * NOTE: This class is auto generated by the openapi generator program.
+ * https://github.com/openapitools/openapi-generator
+ * Please update the test case below to test the model.
+ */
+namespace OpenAPIServer\Model;
+
+use PHPUnit\Framework\TestCase;
+use OpenAPIServer\Model\XmlItem;
+
+/**
+ * XmlItemTest Class Doc Comment
+ *
+ * @package OpenAPIServer\Model
+ * @author  OpenAPI Generator team
+ * @link    https://github.com/openapitools/openapi-generator
+ *
+ * @coversDefaultClass \OpenAPIServer\Model\XmlItem
+ */
+class XmlItemTest extends TestCase
+{
+
+    /**
+     * Setup before running any test cases
+     */
+    public static function setUpBeforeClass()
+    {
+    }
+
+    /**
+     * Setup before running each test case
+     */
+    public function setUp()
+    {
+    }
+
+    /**
+     * Clean up after running each test case
+     */
+    public function tearDown()
+    {
+    }
+
+    /**
+     * Clean up after running all test cases
+     */
+    public static function tearDownAfterClass()
+    {
+    }
+
+    /**
+     * Test "XmlItem"
+     */
+    public function testXmlItem()
+    {
+        $testXmlItem = new XmlItem();
+    }
+
+    /**
+     * Test attribute "attributeString"
+     */
+    public function testPropertyAttributeString()
+    {
+    }
+
+    /**
+     * Test attribute "attributeNumber"
+     */
+    public function testPropertyAttributeNumber()
+    {
+    }
+
+    /**
+     * Test attribute "attributeInteger"
+     */
+    public function testPropertyAttributeInteger()
+    {
+    }
+
+    /**
+     * Test attribute "attributeBoolean"
+     */
+    public function testPropertyAttributeBoolean()
+    {
+    }
+
+    /**
+     * Test attribute "wrappedArray"
+     */
+    public function testPropertyWrappedArray()
+    {
+    }
+
+    /**
+     * Test attribute "nameString"
+     */
+    public function testPropertyNameString()
+    {
+    }
+
+    /**
+     * Test attribute "nameNumber"
+     */
+    public function testPropertyNameNumber()
+    {
+    }
+
+    /**
+     * Test attribute "nameInteger"
+     */
+    public function testPropertyNameInteger()
+    {
+    }
+
+    /**
+     * Test attribute "nameBoolean"
+     */
+    public function testPropertyNameBoolean()
+    {
+    }
+
+    /**
+     * Test attribute "nameArray"
+     */
+    public function testPropertyNameArray()
+    {
+    }
+
+    /**
+     * Test attribute "nameWrappedArray"
+     */
+    public function testPropertyNameWrappedArray()
+    {
+    }
+
+    /**
+     * Test attribute "prefixString"
+     */
+    public function testPropertyPrefixString()
+    {
+    }
+
+    /**
+     * Test attribute "prefixNumber"
+     */
+    public function testPropertyPrefixNumber()
+    {
+    }
+
+    /**
+     * Test attribute "prefixInteger"
+     */
+    public function testPropertyPrefixInteger()
+    {
+    }
+
+    /**
+     * Test attribute "prefixBoolean"
+     */
+    public function testPropertyPrefixBoolean()
+    {
+    }
+
+    /**
+     * Test attribute "prefixArray"
+     */
+    public function testPropertyPrefixArray()
+    {
+    }
+
+    /**
+     * Test attribute "prefixWrappedArray"
+     */
+    public function testPropertyPrefixWrappedArray()
+    {
+    }
+
+    /**
+     * Test attribute "namespaceString"
+     */
+    public function testPropertyNamespaceString()
+    {
+    }
+
+    /**
+     * Test attribute "namespaceNumber"
+     */
+    public function testPropertyNamespaceNumber()
+    {
+    }
+
+    /**
+     * Test attribute "namespaceInteger"
+     */
+    public function testPropertyNamespaceInteger()
+    {
+    }
+
+    /**
+     * Test attribute "namespaceBoolean"
+     */
+    public function testPropertyNamespaceBoolean()
+    {
+    }
+
+    /**
+     * Test attribute "namespaceArray"
+     */
+    public function testPropertyNamespaceArray()
+    {
+    }
+
+    /**
+     * Test attribute "namespaceWrappedArray"
+     */
+    public function testPropertyNamespaceWrappedArray()
+    {
+    }
+
+    /**
+     * Test attribute "prefixNamespaceString"
+     */
+    public function testPropertyPrefixNamespaceString()
+    {
+    }
+
+    /**
+     * Test attribute "prefixNamespaceNumber"
+     */
+    public function testPropertyPrefixNamespaceNumber()
+    {
+    }
+
+    /**
+     * Test attribute "prefixNamespaceInteger"
+     */
+    public function testPropertyPrefixNamespaceInteger()
+    {
+    }
+
+    /**
+     * Test attribute "prefixNamespaceBoolean"
+     */
+    public function testPropertyPrefixNamespaceBoolean()
+    {
+    }
+
+    /**
+     * Test attribute "prefixNamespaceArray"
+     */
+    public function testPropertyPrefixNamespaceArray()
+    {
+    }
+
+    /**
+     * Test attribute "prefixNamespaceWrappedArray"
+     */
+    public function testPropertyPrefixNamespaceWrappedArray()
+    {
+    }
+}
diff --git a/samples/server/petstore/php-ze-ph/application/config/path_handler.yml b/samples/server/petstore/php-ze-ph/application/config/path_handler.yml
index d14c774518c8e8ec3b0c9da8510c2fe8feaa5b5f..7ac94df8539c206feee2ad64e98ac25eff91c8a7 100644
--- a/samples/server/petstore/php-ze-ph/application/config/path_handler.yml
+++ b/samples/server/petstore/php-ze-ph/application/config/path_handler.yml
@@ -28,6 +28,7 @@ Articus\PathHandler\Router\FastRouteAnnotation:
     - App\Handler\Fake
     - App\Handler\FakeBodyWithFileSchema
     - App\Handler\FakeBodyWithQueryParams
+    - App\Handler\FakeCreateXmlItem
     - App\Handler\FakeInlineAdditionalProperties
     - App\Handler\FakeJsonFormData
     - App\Handler\FakeOuterBoolean
@@ -56,6 +57,7 @@ Zend\ServiceManager\AbstractFactory\ConfigAbstractFactory:
   App\Handler\Fake: []
   App\Handler\FakeBodyWithFileSchema: []
   App\Handler\FakeBodyWithQueryParams: []
+  App\Handler\FakeCreateXmlItem: []
   App\Handler\FakeInlineAdditionalProperties: []
   App\Handler\FakeJsonFormData: []
   App\Handler\FakeOuterBoolean: []
diff --git a/samples/server/petstore/php-ze-ph/src/App/DTO/XmlItem.php b/samples/server/petstore/php-ze-ph/src/App/DTO/XmlItem.php
new file mode 100644
index 0000000000000000000000000000000000000000..a22054d3c3e42f84d34b3dcf8eba8fb777d07cb4
--- /dev/null
+++ b/samples/server/petstore/php-ze-ph/src/App/DTO/XmlItem.php
@@ -0,0 +1,212 @@
+<?php
+
+namespace App\DTO;
+
+use Articus\DataTransfer\Annotation as DTA;
+
+/**
+ */
+class XmlItem
+{
+    /**
+     * @DTA\Data(field="attribute_string", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"string"})
+     * @var string
+     */
+    public $attribute_string;
+    /**
+     * @DTA\Data(field="attribute_number", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"float"})
+     * @var float
+     */
+    public $attribute_number;
+    /**
+     * @DTA\Data(field="attribute_integer", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"int"})
+     * @var int
+     */
+    public $attribute_integer;
+    /**
+     * @DTA\Data(field="attribute_boolean", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"bool"})
+     * @var bool
+     */
+    public $attribute_boolean;
+    /**
+     * @DTA\Data(field="wrapped_array", nullable=true)
+     * TODO check validator and strategy are correct and can handle container item type
+     * @DTA\Validator(name="Collection", options={"validators":{
+     *     {"name":"Type", "options":{"type":"int"}}
+     * }})
+     * @var int[]
+     */
+    public $wrapped_array;
+    /**
+     * @DTA\Data(field="name_string", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"string"})
+     * @var string
+     */
+    public $name_string;
+    /**
+     * @DTA\Data(field="name_number", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"float"})
+     * @var float
+     */
+    public $name_number;
+    /**
+     * @DTA\Data(field="name_integer", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"int"})
+     * @var int
+     */
+    public $name_integer;
+    /**
+     * @DTA\Data(field="name_boolean", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"bool"})
+     * @var bool
+     */
+    public $name_boolean;
+    /**
+     * @DTA\Data(field="name_array", nullable=true)
+     * TODO check validator and strategy are correct and can handle container item type
+     * @DTA\Validator(name="Collection", options={"validators":{
+     *     {"name":"Type", "options":{"type":"int"}}
+     * }})
+     * @var int[]
+     */
+    public $name_array;
+    /**
+     * @DTA\Data(field="name_wrapped_array", nullable=true)
+     * TODO check validator and strategy are correct and can handle container item type
+     * @DTA\Validator(name="Collection", options={"validators":{
+     *     {"name":"Type", "options":{"type":"int"}}
+     * }})
+     * @var int[]
+     */
+    public $name_wrapped_array;
+    /**
+     * @DTA\Data(field="prefix_string", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"string"})
+     * @var string
+     */
+    public $prefix_string;
+    /**
+     * @DTA\Data(field="prefix_number", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"float"})
+     * @var float
+     */
+    public $prefix_number;
+    /**
+     * @DTA\Data(field="prefix_integer", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"int"})
+     * @var int
+     */
+    public $prefix_integer;
+    /**
+     * @DTA\Data(field="prefix_boolean", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"bool"})
+     * @var bool
+     */
+    public $prefix_boolean;
+    /**
+     * @DTA\Data(field="prefix_array", nullable=true)
+     * TODO check validator and strategy are correct and can handle container item type
+     * @DTA\Validator(name="Collection", options={"validators":{
+     *     {"name":"Type", "options":{"type":"int"}}
+     * }})
+     * @var int[]
+     */
+    public $prefix_array;
+    /**
+     * @DTA\Data(field="prefix_wrapped_array", nullable=true)
+     * TODO check validator and strategy are correct and can handle container item type
+     * @DTA\Validator(name="Collection", options={"validators":{
+     *     {"name":"Type", "options":{"type":"int"}}
+     * }})
+     * @var int[]
+     */
+    public $prefix_wrapped_array;
+    /**
+     * @DTA\Data(field="namespace_string", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"string"})
+     * @var string
+     */
+    public $namespace_string;
+    /**
+     * @DTA\Data(field="namespace_number", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"float"})
+     * @var float
+     */
+    public $namespace_number;
+    /**
+     * @DTA\Data(field="namespace_integer", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"int"})
+     * @var int
+     */
+    public $namespace_integer;
+    /**
+     * @DTA\Data(field="namespace_boolean", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"bool"})
+     * @var bool
+     */
+    public $namespace_boolean;
+    /**
+     * @DTA\Data(field="namespace_array", nullable=true)
+     * TODO check validator and strategy are correct and can handle container item type
+     * @DTA\Validator(name="Collection", options={"validators":{
+     *     {"name":"Type", "options":{"type":"int"}}
+     * }})
+     * @var int[]
+     */
+    public $namespace_array;
+    /**
+     * @DTA\Data(field="namespace_wrapped_array", nullable=true)
+     * TODO check validator and strategy are correct and can handle container item type
+     * @DTA\Validator(name="Collection", options={"validators":{
+     *     {"name":"Type", "options":{"type":"int"}}
+     * }})
+     * @var int[]
+     */
+    public $namespace_wrapped_array;
+    /**
+     * @DTA\Data(field="prefix_ns_string", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"string"})
+     * @var string
+     */
+    public $prefix_ns_string;
+    /**
+     * @DTA\Data(field="prefix_ns_number", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"float"})
+     * @var float
+     */
+    public $prefix_ns_number;
+    /**
+     * @DTA\Data(field="prefix_ns_integer", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"int"})
+     * @var int
+     */
+    public $prefix_ns_integer;
+    /**
+     * @DTA\Data(field="prefix_ns_boolean", nullable=true)
+     * @DTA\Validator(name="Type", options={"type":"bool"})
+     * @var bool
+     */
+    public $prefix_ns_boolean;
+    /**
+     * @DTA\Data(field="prefix_ns_array", nullable=true)
+     * TODO check validator and strategy are correct and can handle container item type
+     * @DTA\Validator(name="Collection", options={"validators":{
+     *     {"name":"Type", "options":{"type":"int"}}
+     * }})
+     * @var int[]
+     */
+    public $prefix_ns_array;
+    /**
+     * @DTA\Data(field="prefix_ns_wrapped_array", nullable=true)
+     * TODO check validator and strategy are correct and can handle container item type
+     * @DTA\Validator(name="Collection", options={"validators":{
+     *     {"name":"Type", "options":{"type":"int"}}
+     * }})
+     * @var int[]
+     */
+    public $prefix_ns_wrapped_array;
+}
diff --git a/samples/server/petstore/php-ze-ph/src/App/Handler/FakeCreateXmlItem.php b/samples/server/petstore/php-ze-ph/src/App/Handler/FakeCreateXmlItem.php
new file mode 100644
index 0000000000000000000000000000000000000000..b5e3faea4a8eaa05885c4a36ebaf889712d8c01c
--- /dev/null
+++ b/samples/server/petstore/php-ze-ph/src/App/Handler/FakeCreateXmlItem.php
@@ -0,0 +1,44 @@
+<?php
+
+namespace App\Handler;
+
+use Articus\PathHandler\Operation;
+use Articus\PathHandler\Annotation as PHA;
+use Articus\PathHandler\Consumer as PHConsumer;
+use Articus\PathHandler\Producer as PHProducer;
+use Articus\PathHandler\Attribute as PHAttribute;
+use Articus\PathHandler\Exception as PHException;
+use Psr\Http\Message\ServerRequestInterface;
+
+/**
+ * @PHA\Route(pattern="/fake/create_xml_item")
+ */
+class FakeCreateXmlItem implements Operation\PostInterface
+{
+    /**
+     * creates an XmlItem
+     * TODO check if consumer is valid, if it has correct priority and if it can be moved to class annotation
+     * @PHA\Consumer(name=PHConsumer\Json::class, mediaType="application/xml")
+     * TODO check if consumer is valid, if it has correct priority and if it can be moved to class annotation
+     * @PHA\Consumer(name=PHConsumer\Json::class, mediaType="application/xml; charset=utf-8")
+     * TODO check if consumer is valid, if it has correct priority and if it can be moved to class annotation
+     * @PHA\Consumer(name=PHConsumer\Json::class, mediaType="application/xml; charset=utf-16")
+     * TODO check if consumer is valid, if it has correct priority and if it can be moved to class annotation
+     * @PHA\Consumer(name=PHConsumer\Json::class, mediaType="text/xml")
+     * TODO check if consumer is valid, if it has correct priority and if it can be moved to class annotation
+     * @PHA\Consumer(name=PHConsumer\Json::class, mediaType="text/xml; charset=utf-8")
+     * TODO check if consumer is valid, if it has correct priority and if it can be moved to class annotation
+     * @PHA\Consumer(name=PHConsumer\Json::class, mediaType="text/xml; charset=utf-16")
+     * @PHA\Attribute(name=PHAttribute\Transfer::class, options={"type":\App\DTO\XmlItem::class,"objectAttr":"bodyData"})
+     * @param ServerRequestInterface $request
+     *
+     * @throws PHException\HttpCode 500 if the method is not implemented
+     */
+    public function handlePost(ServerRequestInterface $request)
+    {
+        //TODO implement method
+        /** @var \App\DTO\XmlItem $bodyData */
+        $bodyData = $request->getAttribute("bodyData");
+        throw new PHException\HttpCode(500, "Not implemented");
+    }
+}
diff --git a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java
index 1dda98b7773b692c9f0fa871dd21fa27bf38c5af..223f453af6ac9203bd15ee9501367c67809ed02b 100644
--- a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import java.time.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -45,6 +46,18 @@ public interface FakeApi {
         return Optional.empty();
     }
 
+    @ApiOperation(value = "creates an XmlItem", nickname = "createXmlItem", notes = "this route creates an XmlItem", tags={ "fake", })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    @RequestMapping(value = "/fake/create_xml_item",
+        consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" },
+        method = RequestMethod.POST)
+    default CompletableFuture<ResponseEntity<Void>> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem) {
+        return CompletableFuture.completedFuture(new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED));
+
+    }
+
+
     @ApiOperation(value = "", nickname = "fakeOuterBooleanSerialize", notes = "Test serialization of outer boolean types", response = Boolean.class, tags={ "fake", })
     @ApiResponses(value = { 
         @ApiResponse(code = 200, message = "Output boolean", response = Boolean.class) })
diff --git a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..dae97d794675d7c2964ccd0a346a2831bfd6cce8
--- /dev/null
+++ b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,868 @@
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.jackson.nullable.JsonNullable;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  @Valid
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  @Valid
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  @Valid
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  @Valid
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  @Valid
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  @Valid
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  @Valid
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  @Valid
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  @Valid
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java
index 9367531a51bc0e07847c39bc624f839891e1e387..1e56929d73f005d2e6ae2a07dd483ecda386190d 100644
--- a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import org.openapitools.model.ModelApiResponse;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -44,6 +45,18 @@ public interface FakeApi {
         return Optional.empty();
     }
 
+    @ApiOperation(value = "creates an XmlItem", nickname = "createXmlItem", notes = "this route creates an XmlItem", tags={ "fake", })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    @RequestMapping(value = "/fake/create_xml_item",
+        consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" },
+        method = RequestMethod.POST)
+    default ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem) {
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
+
     @ApiOperation(value = "", nickname = "fakeOuterBooleanSerialize", notes = "Test serialization of outer boolean types", response = Boolean.class, tags={ "fake", })
     @ApiResponses(value = { 
         @ApiResponse(code = 200, message = "Output boolean", response = Boolean.class) })
diff --git a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..dae97d794675d7c2964ccd0a346a2831bfd6cce8
--- /dev/null
+++ b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,868 @@
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.jackson.nullable.JsonNullable;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  @Valid
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  @Valid
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  @Valid
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  @Valid
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  @Valid
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  @Valid
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  @Valid
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  @Valid
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  @Valid
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java
index c554b9f58faca19b52248a592ea216ba8c4d2631..6cd9cbf27d0de96425f6478c8021ef10d428b792 100644
--- a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import org.threeten.bp.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.ResponseEntity;
 import org.springframework.validation.annotation.Validated;
@@ -36,6 +37,15 @@ import java.util.Map;
 @Api(value = "fake", description = "the fake API")
 public interface FakeApi {
 
+    @ApiOperation(value = "creates an XmlItem", nickname = "createXmlItem", notes = "this route creates an XmlItem", tags={ "fake", })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    @RequestMapping(value = "/fake/create_xml_item",
+        consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" },
+        method = RequestMethod.POST)
+    ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem);
+
+
     @ApiOperation(value = "", nickname = "fakeOuterBooleanSerialize", notes = "Test serialization of outer boolean types", response = Boolean.class, tags={ "fake", })
     @ApiResponses(value = { 
         @ApiResponse(code = 200, message = "Output boolean", response = Boolean.class) })
diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApiController.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApiController.java
index 1ffe2c909ca412ecee827485e2628709a1038c47..cf1cfb520fa4876b682917c11df954054565f81c 100644
--- a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApiController.java
+++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApiController.java
@@ -10,6 +10,7 @@ import org.threeten.bp.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -40,6 +41,11 @@ public class FakeApiController implements FakeApi {
         this.request = request;
     }
 
+    public ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem) {
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
     public ResponseEntity<Boolean> fakeOuterBooleanSerialize(@ApiParam(value = "Input boolean as post body"  )  @Valid @RequestBody Boolean body) {
         return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
 
diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca74cfcfd91c78c0d6181c42609927a58483c448
--- /dev/null
+++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,868 @@
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.jackson.nullable.JsonNullable;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  @Valid
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  @Valid
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  @Valid
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  @Valid
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  @Valid
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  @Valid
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  @Valid
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  @Valid
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  @Valid
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java
index c554b9f58faca19b52248a592ea216ba8c4d2631..6cd9cbf27d0de96425f6478c8021ef10d428b792 100644
--- a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import org.threeten.bp.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.ResponseEntity;
 import org.springframework.validation.annotation.Validated;
@@ -36,6 +37,15 @@ import java.util.Map;
 @Api(value = "fake", description = "the fake API")
 public interface FakeApi {
 
+    @ApiOperation(value = "creates an XmlItem", nickname = "createXmlItem", notes = "this route creates an XmlItem", tags={ "fake", })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    @RequestMapping(value = "/fake/create_xml_item",
+        consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" },
+        method = RequestMethod.POST)
+    ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem);
+
+
     @ApiOperation(value = "", nickname = "fakeOuterBooleanSerialize", notes = "Test serialization of outer boolean types", response = Boolean.class, tags={ "fake", })
     @ApiResponses(value = { 
         @ApiResponse(code = 200, message = "Output boolean", response = Boolean.class) })
diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApiController.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApiController.java
index fe6069f4ef38f7e78a6e707ab0d965c79f23286f..4f6f4df2194e4f747107fe13276b9ff205e103e7 100644
--- a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApiController.java
+++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApiController.java
@@ -10,6 +10,7 @@ import org.threeten.bp.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -40,6 +41,11 @@ public class FakeApiController implements FakeApi {
         this.request = request;
     }
 
+    public ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem) {
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
     public ResponseEntity<Boolean> fakeOuterBooleanSerialize(@ApiParam(value = "Input boolean as post body"  )  @Valid @RequestBody Boolean body) {
         return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
 
diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca74cfcfd91c78c0d6181c42609927a58483c448
--- /dev/null
+++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,868 @@
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.jackson.nullable.JsonNullable;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  @Valid
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  @Valid
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  @Valid
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  @Valid
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  @Valid
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  @Valid
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  @Valid
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  @Valid
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  @Valid
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java
index 66da24db3f2bf69a1925430a9e714ad311d0f54f..54bff8a0284b33862c53208f14549d6904549f38 100644
--- a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import java.time.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.ResponseEntity;
 import org.springframework.validation.annotation.Validated;
@@ -40,6 +41,17 @@ public interface FakeApi {
         return new FakeApiDelegate() {};
     }
 
+    @ApiOperation(value = "creates an XmlItem", nickname = "createXmlItem", notes = "this route creates an XmlItem", tags={ "fake", })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    @RequestMapping(value = "/fake/create_xml_item",
+        consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" },
+        method = RequestMethod.POST)
+    default ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem) {
+        return getDelegate().createXmlItem(xmlItem);
+    }
+
+
     @ApiOperation(value = "", nickname = "fakeOuterBooleanSerialize", notes = "Test serialization of outer boolean types", response = Boolean.class, tags={ "fake", })
     @ApiResponses(value = { 
         @ApiResponse(code = 200, message = "Output boolean", response = Boolean.class) })
diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApiDelegate.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApiDelegate.java
index 4c32bae593632ecf5553767cf084982d1f44be57..5eae029151cbef329798bcbc067d435e7b455e04 100644
--- a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApiDelegate.java
+++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApiDelegate.java
@@ -10,6 +10,7 @@ import java.time.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -32,6 +33,14 @@ public interface FakeApiDelegate {
         return Optional.empty();
     }
 
+    /**
+     * @see FakeApi#createXmlItem
+     */
+    default ResponseEntity<Void> createXmlItem(XmlItem xmlItem) {
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
     /**
      * @see FakeApi#fakeOuterBooleanSerialize
      */
diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..dae97d794675d7c2964ccd0a346a2831bfd6cce8
--- /dev/null
+++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,868 @@
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.jackson.nullable.JsonNullable;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  @Valid
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  @Valid
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  @Valid
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  @Valid
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  @Valid
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  @Valid
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  @Valid
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  @Valid
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  @Valid
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java
index c554b9f58faca19b52248a592ea216ba8c4d2631..6cd9cbf27d0de96425f6478c8021ef10d428b792 100644
--- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import org.threeten.bp.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.ResponseEntity;
 import org.springframework.validation.annotation.Validated;
@@ -36,6 +37,15 @@ import java.util.Map;
 @Api(value = "fake", description = "the fake API")
 public interface FakeApi {
 
+    @ApiOperation(value = "creates an XmlItem", nickname = "createXmlItem", notes = "this route creates an XmlItem", tags={ "fake", })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    @RequestMapping(value = "/fake/create_xml_item",
+        consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" },
+        method = RequestMethod.POST)
+    ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem);
+
+
     @ApiOperation(value = "", nickname = "fakeOuterBooleanSerialize", notes = "Test serialization of outer boolean types", response = Boolean.class, tags={ "fake", })
     @ApiResponses(value = { 
         @ApiResponse(code = 200, message = "Output boolean", response = Boolean.class) })
diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiController.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiController.java
index 0d0e26e93898df008ea4313b65a40c1232a254c7..fd956bffb89f34aa3c940ab4f32da2deab65f2c0 100644
--- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiController.java
+++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiController.java
@@ -10,6 +10,7 @@ import org.threeten.bp.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -38,6 +39,10 @@ public class FakeApiController implements FakeApi {
         this.delegate = delegate;
     }
 
+    public ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem) {
+        return delegate.createXmlItem(xmlItem);
+    }
+
     public ResponseEntity<Boolean> fakeOuterBooleanSerialize(@ApiParam(value = "Input boolean as post body"  )  @Valid @RequestBody Boolean body) {
         return delegate.fakeOuterBooleanSerialize(body);
     }
diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiDelegate.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiDelegate.java
index 33e83d53ff194e3dc0f8f9ea65a1f1ade91c46c0..54b6a75569e8f9df128f0b04e8fa4388024109ff 100644
--- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiDelegate.java
+++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApiDelegate.java
@@ -10,6 +10,7 @@ import org.threeten.bp.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.multipart.MultipartFile;
@@ -24,6 +25,11 @@ import java.util.Map;
 
 public interface FakeApiDelegate {
 
+    /**
+     * @see FakeApi#createXmlItem
+     */
+    ResponseEntity<Void> createXmlItem(XmlItem xmlItem);
+
     /**
      * @see FakeApi#fakeOuterBooleanSerialize
      */
diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca74cfcfd91c78c0d6181c42609927a58483c448
--- /dev/null
+++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,868 @@
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.jackson.nullable.JsonNullable;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  @Valid
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  @Valid
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  @Valid
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  @Valid
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  @Valid
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  @Valid
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  @Valid
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  @Valid
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  @Valid
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<Integer>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<Integer>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<Integer>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<Integer>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<Integer>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<Integer>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<Integer>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<Integer>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java
index d4e92466b0bd4b62d2f12c3aad23a4b46ab58e17..296c52f4f8e7594e0e78229cee23e20447452df1 100644
--- a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import java.time.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -44,6 +45,20 @@ public interface FakeApi {
         return Optional.empty();
     }
 
+    @ApiOperation(value = "creates an XmlItem", nickname = "createXmlItem", notes = "this route creates an XmlItem", tags={ "fake", })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    @ApiImplicitParams({
+    })
+    @RequestMapping(value = "/fake/create_xml_item",
+        consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" },
+        method = RequestMethod.POST)
+    default ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem) {
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
+
     @ApiOperation(value = "", nickname = "fakeOuterBooleanSerialize", notes = "Test serialization of outer boolean types", response = Boolean.class, tags={ "fake", })
     @ApiResponses(value = { 
         @ApiResponse(code = 200, message = "Output boolean", response = Boolean.class) })
diff --git a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..dae97d794675d7c2964ccd0a346a2831bfd6cce8
--- /dev/null
+++ b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,868 @@
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.jackson.nullable.JsonNullable;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  @Valid
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  @Valid
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  @Valid
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  @Valid
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  @Valid
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  @Valid
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  @Valid
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  @Valid
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  @Valid
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java
index 0c5f4c63f76c04e4b5563f136177a2cd37635e89..d53bb64d8d3c7129e05686bdb1a8782b1c40733b 100644
--- a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import java.time.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.ResponseEntity;
 import org.springframework.validation.annotation.Validated;
@@ -43,6 +44,17 @@ public interface FakeApi {
         return new FakeApiDelegate() {};
     }
 
+    @ApiOperation(value = "creates an XmlItem", nickname = "createXmlItem", notes = "this route creates an XmlItem", tags={ "fake", })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    @RequestMapping(value = "/fake/create_xml_item",
+        consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" },
+        method = RequestMethod.POST)
+    default Mono<ResponseEntity<Void>> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody Mono<XmlItem> xmlItem, ServerWebExchange exchange) {
+        return getDelegate().createXmlItem(xmlItem, exchange);
+    }
+
+
     @ApiOperation(value = "", nickname = "fakeOuterBooleanSerialize", notes = "Test serialization of outer boolean types", response = Boolean.class, tags={ "fake", })
     @ApiResponses(value = { 
         @ApiResponse(code = 200, message = "Output boolean", response = Boolean.class) })
diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApiDelegate.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApiDelegate.java
index bb8ff5026c52c727f448ddb113f98a12c012165b..4984bd8d00f8901087a94a9ab3d4881cc86789d5 100644
--- a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApiDelegate.java
+++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApiDelegate.java
@@ -10,6 +10,7 @@ import java.time.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -35,6 +36,17 @@ public interface FakeApiDelegate {
         return Optional.empty();
     }
 
+    /**
+     * @see FakeApi#createXmlItem
+     */
+    default Mono<ResponseEntity<Void>> createXmlItem(Mono<XmlItem> xmlItem,
+        ServerWebExchange exchange) {
+        Mono<Void> result = Mono.empty();
+        exchange.getResponse().setStatusCode(HttpStatus.NOT_IMPLEMENTED);
+        return result.then(Mono.empty());
+
+    }
+
     /**
      * @see FakeApi#fakeOuterBooleanSerialize
      */
diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..dae97d794675d7c2964ccd0a346a2831bfd6cce8
--- /dev/null
+++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,868 @@
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.jackson.nullable.JsonNullable;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  @Valid
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  @Valid
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  @Valid
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  @Valid
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  @Valid
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  @Valid
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  @Valid
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  @Valid
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  @Valid
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/springboot-reactive/src/main/resources/openapi.yaml b/samples/server/petstore/springboot-reactive/src/main/resources/openapi.yaml
index 08bd2c2838171916f7e44c7da1519f173aebf6a5..76f8b19a4fbca7836633dec8efc9d73fe00e87b3 100644
--- a/samples/server/petstore/springboot-reactive/src/main/resources/openapi.yaml
+++ b/samples/server/petstore/springboot-reactive/src/main/resources/openapi.yaml
@@ -1130,6 +1130,44 @@ paths:
       x-accepts: application/json
       x-tags:
       - tag: fake
+  /fake/create_xml_item:
+    post:
+      description: this route creates an XmlItem
+      operationId: createXmlItem
+      requestBody:
+        content:
+          application/xml:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          application/xml; charset=utf-8:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          application/xml; charset=utf-16:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml; charset=utf-8:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+          text/xml; charset=utf-16:
+            schema:
+              $ref: '#/components/schemas/XmlItem'
+        description: XmlItem Body
+        required: true
+      responses:
+        200:
+          content: {}
+          description: successful operation
+      summary: creates an XmlItem
+      tags:
+      - fake
+      x-codegen-request-body-name: XmlItem
+      x-contentType: application/xml
+      x-accepts: application/json
+      x-tags:
+      - tag: fake
   /another-fake/dummy:
     patch:
       description: To test special tags and operation ID starting with number
@@ -1829,6 +1867,185 @@ components:
       - number_item
       - string_item
       type: object
+    XmlItem:
+      properties:
+        attribute_string:
+          example: string
+          type: string
+          xml:
+            attribute: true
+        attribute_number:
+          example: 1.234
+          type: number
+          xml:
+            attribute: true
+        attribute_integer:
+          example: -2
+          type: integer
+          xml:
+            attribute: true
+        attribute_boolean:
+          example: true
+          type: boolean
+          xml:
+            attribute: true
+        wrapped_array:
+          items:
+            type: integer
+          type: array
+          xml:
+            wrapped: true
+        name_string:
+          example: string
+          type: string
+          xml:
+            name: xml_name_string
+        name_number:
+          example: 1.234
+          type: number
+          xml:
+            name: xml_name_number
+        name_integer:
+          example: -2
+          type: integer
+          xml:
+            name: xml_name_integer
+        name_boolean:
+          example: true
+          type: boolean
+          xml:
+            name: xml_name_boolean
+        name_array:
+          items:
+            type: integer
+            xml:
+              name: xml_name_array_item
+          type: array
+        name_wrapped_array:
+          items:
+            type: integer
+            xml:
+              name: xml_name_wrapped_array_item
+          type: array
+          xml:
+            name: xml_name_wrapped_array
+            wrapped: true
+        prefix_string:
+          example: string
+          type: string
+          xml:
+            prefix: ab
+        prefix_number:
+          example: 1.234
+          type: number
+          xml:
+            prefix: cd
+        prefix_integer:
+          example: -2
+          type: integer
+          xml:
+            prefix: ef
+        prefix_boolean:
+          example: true
+          type: boolean
+          xml:
+            prefix: gh
+        prefix_array:
+          items:
+            type: integer
+            xml:
+              prefix: ij
+          type: array
+        prefix_wrapped_array:
+          items:
+            type: integer
+            xml:
+              prefix: mn
+          type: array
+          xml:
+            prefix: kl
+            wrapped: true
+        namespace_string:
+          example: string
+          type: string
+          xml:
+            namespace: http://a.com/schema
+        namespace_number:
+          example: 1.234
+          type: number
+          xml:
+            namespace: http://b.com/schema
+        namespace_integer:
+          example: -2
+          type: integer
+          xml:
+            namespace: http://c.com/schema
+        namespace_boolean:
+          example: true
+          type: boolean
+          xml:
+            namespace: http://d.com/schema
+        namespace_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://e.com/schema
+          type: array
+        namespace_wrapped_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://g.com/schema
+          type: array
+          xml:
+            namespace: http://f.com/schema
+            wrapped: true
+        prefix_ns_string:
+          example: string
+          type: string
+          xml:
+            namespace: http://a.com/schema
+            prefix: a
+        prefix_ns_number:
+          example: 1.234
+          type: number
+          xml:
+            namespace: http://b.com/schema
+            prefix: b
+        prefix_ns_integer:
+          example: -2
+          type: integer
+          xml:
+            namespace: http://c.com/schema
+            prefix: c
+        prefix_ns_boolean:
+          example: true
+          type: boolean
+          xml:
+            namespace: http://d.com/schema
+            prefix: d
+        prefix_ns_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://e.com/schema
+              prefix: e
+          type: array
+        prefix_ns_wrapped_array:
+          items:
+            type: integer
+            xml:
+              namespace: http://g.com/schema
+              prefix: g
+          type: array
+          xml:
+            namespace: http://f.com/schema
+            prefix: f
+            wrapped: true
+      type: object
+      xml:
+        namespace: http://a.com/schema
+        prefix: pre
   securitySchemes:
     petstore_auth:
       flows:
diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java
index 7a32f228c6895c8e7c2d1cee8748fdf930d426c7..f74816403dd528964b78d2a9149c6b8d79e5d574 100644
--- a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import java.time.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -44,6 +45,18 @@ public interface FakeApi {
         return Optional.empty();
     }
 
+    @ApiOperation(value = "creates an XmlItem", nickname = "createXmlItem", notes = "this route creates an XmlItem", tags={ "fake", })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    @RequestMapping(value = "/fake/create_xml_item",
+        consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" },
+        method = RequestMethod.POST)
+    default ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem) {
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
+
     @ApiOperation(value = "", nickname = "fakeOuterBooleanSerialize", notes = "Test serialization of outer boolean types", response = Boolean.class, tags={ "fake", })
     @ApiResponses(value = { 
         @ApiResponse(code = 200, message = "Output boolean", response = Boolean.class) })
diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..dae97d794675d7c2964ccd0a346a2831bfd6cce8
--- /dev/null
+++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,868 @@
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.jackson.nullable.JsonNullable;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  @Valid
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  @Valid
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  @Valid
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  @Valid
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  @Valid
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  @Valid
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  @Valid
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  @Valid
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  @Valid
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java
index 9e140bed16954e04e57065c56aeb9dd5e19a7304..d27fa1e047d5f1e7b508ced4a93a806964a9bc2b 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java
@@ -15,6 +15,7 @@ import java.time.OffsetDateTime;
 import org.openapitools.virtualan.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.virtualan.model.User;
+import org.openapitools.virtualan.model.XmlItem;
 import io.swagger.annotations.*;
 import io.virtualan.annotation.ApiVirtual;
 import io.virtualan.annotation.VirtualService;
@@ -47,6 +48,19 @@ public interface FakeApi {
         return Optional.empty();
     }
 
+    @ApiVirtual
+    @ApiOperation(value = "creates an XmlItem", nickname = "createXmlItem", notes = "this route creates an XmlItem", tags={ "fake", })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    @RequestMapping(value = "/fake/create_xml_item",
+        consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" },
+        method = RequestMethod.POST)
+    default ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem) {
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
+
     @ApiVirtual
     @ApiOperation(value = "", nickname = "fakeOuterBooleanSerialize", notes = "Test serialization of outer boolean types", response = Boolean.class, tags={ "fake", })
     @ApiResponses(value = { 
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/XmlItem.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..ac1ba8ac6353e1e4be9d759d06b991387cdbef41
--- /dev/null
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/XmlItem.java
@@ -0,0 +1,868 @@
+package org.openapitools.virtualan.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.jackson.nullable.JsonNullable;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  @Valid
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  @Valid
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  @Valid
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  @Valid
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  @Valid
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  @Valid
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  @Valid
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  @Valid
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  @Valid
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+
diff --git a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java
index 7af496bc0fa66017d89edc44ef0e9833a0a81fc3..e856b4269a5ea6982b9233f9ce3e01ab403baec5 100644
--- a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java
+++ b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java
@@ -15,6 +15,7 @@ import java.time.OffsetDateTime;
 import org.openapitools.model.OuterComposite;
 import org.springframework.core.io.Resource;
 import org.openapitools.model.User;
+import org.openapitools.model.XmlItem;
 import io.swagger.annotations.*;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -44,6 +45,18 @@ public interface FakeApi {
         return Optional.empty();
     }
 
+    @ApiOperation(value = "creates an XmlItem", nickname = "createXmlItem", notes = "this route creates an XmlItem", tags={ "fake", })
+    @ApiResponses(value = { 
+        @ApiResponse(code = 200, message = "successful operation") })
+    @RequestMapping(value = "/fake/create_xml_item",
+        consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" },
+        method = RequestMethod.POST)
+    default ResponseEntity<Void> createXmlItem(@ApiParam(value = "XmlItem Body" ,required=true )  @Valid @RequestBody XmlItem xmlItem) {
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
+
     @ApiOperation(value = "", nickname = "fakeOuterBooleanSerialize", notes = "Test serialization of outer boolean types", response = Boolean.class, tags={ "fake", })
     @ApiResponses(value = { 
         @ApiResponse(code = 200, message = "Output boolean", response = Boolean.class) })
diff --git a/samples/server/petstore/springboot/src/main/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/springboot/src/main/java/org/openapitools/model/XmlItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..dae97d794675d7c2964ccd0a346a2831bfd6cce8
--- /dev/null
+++ b/samples/server/petstore/springboot/src/main/java/org/openapitools/model/XmlItem.java
@@ -0,0 +1,868 @@
+package org.openapitools.model;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.jackson.nullable.JsonNullable;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * XmlItem
+ */
+
+public class XmlItem   {
+  @JsonProperty("attribute_string")
+  private String attributeString;
+
+  @JsonProperty("attribute_number")
+  private BigDecimal attributeNumber;
+
+  @JsonProperty("attribute_integer")
+  private Integer attributeInteger;
+
+  @JsonProperty("attribute_boolean")
+  private Boolean attributeBoolean;
+
+  @JsonProperty("wrapped_array")
+  @Valid
+  private List<Integer> wrappedArray = null;
+
+  @JsonProperty("name_string")
+  private String nameString;
+
+  @JsonProperty("name_number")
+  private BigDecimal nameNumber;
+
+  @JsonProperty("name_integer")
+  private Integer nameInteger;
+
+  @JsonProperty("name_boolean")
+  private Boolean nameBoolean;
+
+  @JsonProperty("name_array")
+  @Valid
+  private List<Integer> nameArray = null;
+
+  @JsonProperty("name_wrapped_array")
+  @Valid
+  private List<Integer> nameWrappedArray = null;
+
+  @JsonProperty("prefix_string")
+  private String prefixString;
+
+  @JsonProperty("prefix_number")
+  private BigDecimal prefixNumber;
+
+  @JsonProperty("prefix_integer")
+  private Integer prefixInteger;
+
+  @JsonProperty("prefix_boolean")
+  private Boolean prefixBoolean;
+
+  @JsonProperty("prefix_array")
+  @Valid
+  private List<Integer> prefixArray = null;
+
+  @JsonProperty("prefix_wrapped_array")
+  @Valid
+  private List<Integer> prefixWrappedArray = null;
+
+  @JsonProperty("namespace_string")
+  private String namespaceString;
+
+  @JsonProperty("namespace_number")
+  private BigDecimal namespaceNumber;
+
+  @JsonProperty("namespace_integer")
+  private Integer namespaceInteger;
+
+  @JsonProperty("namespace_boolean")
+  private Boolean namespaceBoolean;
+
+  @JsonProperty("namespace_array")
+  @Valid
+  private List<Integer> namespaceArray = null;
+
+  @JsonProperty("namespace_wrapped_array")
+  @Valid
+  private List<Integer> namespaceWrappedArray = null;
+
+  @JsonProperty("prefix_ns_string")
+  private String prefixNsString;
+
+  @JsonProperty("prefix_ns_number")
+  private BigDecimal prefixNsNumber;
+
+  @JsonProperty("prefix_ns_integer")
+  private Integer prefixNsInteger;
+
+  @JsonProperty("prefix_ns_boolean")
+  private Boolean prefixNsBoolean;
+
+  @JsonProperty("prefix_ns_array")
+  @Valid
+  private List<Integer> prefixNsArray = null;
+
+  @JsonProperty("prefix_ns_wrapped_array")
+  @Valid
+  private List<Integer> prefixNsWrappedArray = null;
+
+  public XmlItem attributeString(String attributeString) {
+    this.attributeString = attributeString;
+    return this;
+  }
+
+  /**
+   * Get attributeString
+   * @return attributeString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+  /**
+   * Get attributeNumber
+   * @return attributeNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+  /**
+   * Get attributeInteger
+   * @return attributeInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+  /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get wrappedArray
+   * @return wrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+  public XmlItem nameString(String nameString) {
+    this.nameString = nameString;
+    return this;
+  }
+
+  /**
+   * Get nameString
+   * @return nameString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNameString() {
+    return nameString;
+  }
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+  /**
+   * Get nameNumber
+   * @return nameNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+  /**
+   * Get nameInteger
+   * @return nameInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+  /**
+   * Get nameBoolean
+   * @return nameBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNameBoolean() {
+    return nameBoolean;
+  }
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameArray
+   * @return nameArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+  public XmlItem prefixString(String prefixString) {
+    this.prefixString = prefixString;
+    return this;
+  }
+
+  /**
+   * Get prefixString
+   * @return prefixString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNumber
+   * @return prefixNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixInteger
+   * @return prefixInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixArray
+   * @return prefixArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+  public XmlItem namespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+  /**
+   * Get namespaceString
+   * @return namespaceString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+  /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+  /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+  /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceArray
+   * @return namespaceArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+  /**
+   * Get prefixNsString
+   * @return prefixNsString
+  */
+  @ApiModelProperty(example = "string", value = "")
+
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+  /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  */
+  @ApiModelProperty(example = "1.234", value = "")
+
+  @Valid
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+  /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  */
+  @ApiModelProperty(example = "-2", value = "")
+
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+  /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  */
+  @ApiModelProperty(example = "true", value = "")
+
+
+  public Boolean getPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+  /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  */
+  @ApiModelProperty(value = "")
+
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}
+