From 4efc398fd392d0bc8e333043928857e1bb2b1fc7 Mon Sep 17 00:00:00 2001 From: "kapil.joshi" Date: Sun, 25 Jan 2026 13:59:03 +0530 Subject: [PATCH] provision made to add Xml namespace in swagger from Data Contract attribute --- src/SwaggerWcf/Models/DefinitionSchema.cs | 16 ++++++++++++++++ src/SwaggerWcf/Support/DefinitionsBuilder.cs | 5 +++++ 2 files changed, 21 insertions(+) diff --git a/src/SwaggerWcf/Models/DefinitionSchema.cs b/src/SwaggerWcf/Models/DefinitionSchema.cs index a1e9d15..b270f5c 100644 --- a/src/SwaggerWcf/Models/DefinitionSchema.cs +++ b/src/SwaggerWcf/Models/DefinitionSchema.cs @@ -24,6 +24,8 @@ internal class DefinitionSchema public List Enum { get; set; } + public string XmlFormatNamespace { get; set; } + public void Serialize(JsonWriter writer) { if (TypeFormat.Type == ParameterType.Object) @@ -54,6 +56,8 @@ public void Serialize(JsonWriter writer) SerializeProperties(writer); + SerializeXmlNamespace(writer); + if (ParentSchema != null) { writer.WriteEndObject(); @@ -136,5 +140,17 @@ private void SerializeProperties(JsonWriter writer) writer.WriteEndObject(); } } + + private void SerializeXmlNamespace(JsonWriter writer) + { + if (!string.IsNullOrWhiteSpace(XmlFormatNamespace)) + { + writer.WritePropertyName("xml"); + writer.WriteStartObject(); + writer.WritePropertyName("namespace"); + writer.WriteValue(XmlFormatNamespace); + writer.WriteEndObject(); + } + } } } diff --git a/src/SwaggerWcf/Support/DefinitionsBuilder.cs b/src/SwaggerWcf/Support/DefinitionsBuilder.cs index 7988c42..01e557c 100644 --- a/src/SwaggerWcf/Support/DefinitionsBuilder.cs +++ b/src/SwaggerWcf/Support/DefinitionsBuilder.cs @@ -109,6 +109,11 @@ private static void ProcessTypeAttributes(Type definitionType, DefinitionSchema if (descAttr != null) schema.Description = descAttr.Description; + DataContractAttribute dataContractAttr = + definitionType.GetCustomAttribute(); + if (dataContractAttr != null && !string.IsNullOrWhiteSpace(dataContractAttr.Namespace)) + schema.XmlFormatNamespace = dataContractAttr.Namespace; + SwaggerWcfDefinitionAttribute definitionAttr = definitionType.GetCustomAttribute(); if (definitionAttr != null)