public static void SerializeElementComponent(Hl7.Fhir.Model.Profile.ElementComponent value, IFhirWriter writer, bool summary)
        {
            writer.WriteStartComplexContent();

            // Serialize element _id
            if (value.LocalIdElement != null)
            {
                writer.WritePrimitiveContents("_id", value.LocalIdElement, XmlSerializationHint.Attribute);
            }

            // Serialize element extension
            if (value.Extension != null && !summary && value.Extension.Count > 0)
            {
                writer.WriteStartArrayElement("extension");
                foreach (var item in value.Extension)
                {
                    writer.WriteStartArrayMember("extension");
                    ExtensionSerializer.SerializeExtension(item, writer, summary);
                    writer.WriteEndArrayMember();
                }
                writer.WriteEndArrayElement();
            }

            // Serialize element path
            if (value.PathElement != null)
            {
                writer.WriteStartElement("path");
                FhirStringSerializer.SerializeFhirString(value.PathElement, writer, summary);
                writer.WriteEndElement();
            }

            // Serialize element name
            if (value.NameElement != null)
            {
                writer.WriteStartElement("name");
                FhirStringSerializer.SerializeFhirString(value.NameElement, writer, summary);
                writer.WriteEndElement();
            }

            // Serialize element slicing
            if (value.Slicing != null)
            {
                writer.WriteStartElement("slicing");
                ProfileSerializer.SerializeElementSlicingComponent(value.Slicing, writer, summary);
                writer.WriteEndElement();
            }

            // Serialize element definition
            if (value.Definition != null)
            {
                writer.WriteStartElement("definition");
                ProfileSerializer.SerializeElementDefinitionComponent(value.Definition, writer, summary);
                writer.WriteEndElement();
            }


            writer.WriteEndComplexContent();
        }
        public static void SerializeProfileExtensionDefnComponent(Hl7.Fhir.Model.Profile.ProfileExtensionDefnComponent value, IFhirWriter writer, bool summary)
        {
            writer.WriteStartComplexContent();

            // Serialize element _id
            if (value.LocalIdElement != null)
            {
                writer.WritePrimitiveContents("_id", value.LocalIdElement, XmlSerializationHint.Attribute);
            }

            // Serialize element extension
            if (value.Extension != null && !summary && value.Extension.Count > 0)
            {
                writer.WriteStartArrayElement("extension");
                foreach (var item in value.Extension)
                {
                    writer.WriteStartArrayMember("extension");
                    ExtensionSerializer.SerializeExtension(item, writer, summary);
                    writer.WriteEndArrayMember();
                }
                writer.WriteEndArrayElement();
            }

            // Serialize element code
            if (value.CodeElement != null)
            {
                writer.WriteStartElement("code");
                CodeSerializer.SerializeCode(value.CodeElement, writer, summary);
                writer.WriteEndElement();
            }

            // Serialize element contextType
            if (value.ContextTypeElement != null)
            {
                writer.WriteStartElement("contextType");
                CodeSerializer.SerializeCode <Hl7.Fhir.Model.Profile.ExtensionContext>(value.ContextTypeElement, writer, summary);
                writer.WriteEndElement();
            }

            // Serialize element context
            if (value.ContextElement != null && value.ContextElement.Count > 0)
            {
                writer.WriteStartArrayElement("context");
                foreach (var item in value.ContextElement)
                {
                    writer.WriteStartArrayMember("context");
                    FhirStringSerializer.SerializeFhirString(item, writer, summary);
                    writer.WriteEndArrayMember();
                }
                writer.WriteEndArrayElement();
            }

            // Serialize element definition
            if (value.Definition != null)
            {
                writer.WriteStartElement("definition");
                ProfileSerializer.SerializeElementDefinitionComponent(value.Definition, writer, summary);
                writer.WriteEndElement();
            }


            writer.WriteEndComplexContent();
        }