public static void SerializeConformanceRestComponent(Hl7.Fhir.Model.Conformance.ConformanceRestComponent 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 mode
            if (value.ModeElement != null)
            {
                writer.WriteStartElement("mode");
                CodeSerializer.SerializeCode <Hl7.Fhir.Model.Conformance.RestfulConformanceMode>(value.ModeElement, writer, summary);
                writer.WriteEndElement();
            }

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

            // Serialize element security
            if (value.Security != null)
            {
                writer.WriteStartElement("security");
                ConformanceSerializer.SerializeConformanceRestSecurityComponent(value.Security, writer, summary);
                writer.WriteEndElement();
            }

            // Serialize element resource
            if (value.Resource != null && value.Resource.Count > 0)
            {
                writer.WriteStartArrayElement("resource");
                foreach (var item in value.Resource)
                {
                    writer.WriteStartArrayMember("resource");
                    ConformanceSerializer.SerializeConformanceRestResourceComponent(item, writer, summary);
                    writer.WriteEndArrayMember();
                }
                writer.WriteEndArrayElement();
            }

            // Serialize element batch
            if (value.BatchElement != null)
            {
                writer.WriteStartElement("batch");
                FhirBooleanSerializer.SerializeFhirBoolean(value.BatchElement, writer, summary);
                writer.WriteEndElement();
            }

            // Serialize element history
            if (value.HistoryElement != null)
            {
                writer.WriteStartElement("history");
                FhirBooleanSerializer.SerializeFhirBoolean(value.HistoryElement, writer, summary);
                writer.WriteEndElement();
            }

            // Serialize element query
            if (value.Query != null && value.Query.Count > 0)
            {
                writer.WriteStartArrayElement("query");
                foreach (var item in value.Query)
                {
                    writer.WriteStartArrayMember("query");
                    ConformanceSerializer.SerializeConformanceRestQueryComponent(item, writer, summary);
                    writer.WriteEndArrayMember();
                }
                writer.WriteEndArrayElement();
            }


            writer.WriteEndComplexContent();
        }