diff --git a/smithy-aws-protocol-tests/model/restXml/document-maps.smithy b/smithy-aws-protocol-tests/model/restXml/document-maps.smithy
index fc2541a0300..0062b98b9cf 100644
--- a/smithy-aws-protocol-tests/model/restXml/document-maps.smithy
+++ b/smithy-aws-protocol-tests/model/restXml/document-maps.smithy
@@ -650,6 +650,151 @@ apply NestedXmlMaps @httpResponseTests([
},
])
+/// Nested Xml Maps with key/values with @xmlName
+@http(uri: "/NestedXmlMapWithXmlName", method: "POST")
+operation NestedXmlMapWithXmlName {
+ input: NestedXmlMapWithXmlNameInputOutput
+ output: NestedXmlMapWithXmlNameInputOutput
+}
+
+structure NestedXmlMapWithXmlNameInputOutput {
+ nestedXmlMapWithXmlNameMap: NestedXmlMapWithXmlNameMap
+}
+
+map NestedXmlMapWithXmlNameMap{
+ @xmlName("OuterKey")
+ key: String
+
+ value: NestedXmlMapWithXmlNameInnerMap
+}
+
+map NestedXmlMapWithXmlNameInnerMap{
+ @xmlName("InnerKey")
+ key: String
+
+ @xmlName("InnerValue")
+ value: String
+}
+
+apply NestedXmlMapWithXmlName @httpRequestTests([
+ {
+ id : "NestedXmlMapWithXmlNameSerializes",
+ documentation : "Serializes nested XML Maps in requests that have xmlName on members",
+ protocol: restXml,
+ method: "POST",
+ uri: "/NestedXmlMapWithXmlName",
+ body: """
+
+
+
+ foo
+
+
+ bar
+ Baz
+
+
+ fizz
+ Buzz
+
+
+
+
+ qux
+
+
+ foobar
+ Bar
+
+
+ fizzbuzz
+ Buzz
+
+
+
+
+
+ """,
+ bodyMediaType: "application/xml",
+ headers: {
+ "Content-Type": "application/xml",
+ },
+ params: {
+ nestedXmlMapWithXmlNameMap: {
+ foo: {
+ bar: "Baz",
+ fizz: "Buzz"
+ },
+ qux: {
+ foobar: "Bar",
+ fizzbuzz: "Buzz"
+ }
+ }
+ }
+ }
+
+
+
+
+])
+
+apply NestedXmlMapWithXmlName @httpResponseTests([
+ {
+ id: "NestedXmlMapWithXmlNameDeserializes",
+ documentation: "Serializes nested XML maps in responses that have xmlName on members",
+ protocol: restXml,
+ code: 200,
+ body: """
+
+
+
+ foo
+
+
+ bar
+ Baz
+
+
+ fizz
+ Buzz
+
+
+
+
+ qux
+
+
+ foobar
+ Bar
+
+
+ fizzbuzz
+ Buzz
+
+
+
+
+
+ """
+ bodyMediaType: "application/xml",
+ headers: {
+ "Content-Type": "application/xml"
+ }
+ params: {
+ nestedXmlMapWithXmlNameMap: {
+ foo: {
+ bar: "Baz",
+ fizz: "Buzz"
+ },
+ qux: {
+ foobar: "Bar",
+ fizzbuzz: "Buzz"
+ }
+ }
+ }
+ }
+])
+
/// Maps with @xmlNamespace and @xmlName
@http(uri: "/XmlMapWithXmlNamespace", method: "POST")
operation XmlMapWithXmlNamespace {