public static void SerializeConformanceRestQueryComponent(Hl7.Fhir.Model.Conformance.ConformanceRestQueryComponent 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 name
            if (value.NameElement != null)
            {
                writer.WriteStartElement("name");
                FhirStringSerializer.SerializeFhirString(value.NameElement, writer, summary);
                writer.WriteEndElement();
            }

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

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


            writer.WriteEndComplexContent();
        }
        public static void SerializeConformanceRestResourceComponent(Hl7.Fhir.Model.Conformance.ConformanceRestResourceComponent 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 type
            if (value.TypeElement != null)
            {
                writer.WriteStartElement("type");
                CodeSerializer.SerializeCode(value.TypeElement, writer, summary);
                writer.WriteEndElement();
            }

            // Serialize element profile
            if (value.Profile != null)
            {
                writer.WriteStartElement("profile");
                ResourceReferenceSerializer.SerializeResourceReference(value.Profile, writer, summary);
                writer.WriteEndElement();
            }

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

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

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

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


            writer.WriteEndComplexContent();
        }