public XDocument Serialize()
 {
     return(new XDocument(new XElement(EspdNames.Qarq + nameof(QualificationApplicationRequest),
                                       new XAttribute(XNamespace.Xmlns + "cbc", UblNames.Cbc),
                                       new XAttribute(XNamespace.Xmlns + "cac", UblNames.Cac),
                                       UBLVersionID.Serialize(nameof(UBLVersionID)),
                                       CustomizationID.Serialize(nameof(CustomizationID)),
                                       ProfileID.Serialize(nameof(ProfileID)),
                                       ProfileExecutionID.Serialize(nameof(ProfileExecutionID)),
                                       ID?.Serialize(nameof(ID)),
                                       CopyIndicator.Serialize(nameof(CopyIndicator)),
                                       UUID.Serialize(nameof(UUID)),
                                       ContractFolderID.Serialize(nameof(ContractFolderID)),
                                       IssueDate.Serialize(nameof(IssueDate)),
                                       IssueTime.Serialize(nameof(IssueTime)),
                                       VersionID.Serialize(nameof(VersionID)),
                                       PreviousVersionID.Serialize(nameof(PreviousVersionID)),
                                       ProcedureCode.Serialize(nameof(ProcedureCode)),
                                       QualificationApplicationTypeCode.Serialize(nameof(QualificationApplicationTypeCode)),
                                       WeightScoringMethodologyNote.Serialize(nameof(WeightScoringMethodologyNote)),
                                       WeightingTypeCode.Serialize(nameof(WeightingTypeCode)),
                                       ContractingParty?.Serialize(),
                                       ProcurementProject?.Serialize(),
                                       ProcurementProjectLots?.Select(lot => lot.Serialize()),
                                       TenderingCriteria?.Select(c => c.Serialize()),
                                       AdditionalDocumentReferences?.Select(d => d.Serialize())
                                       )));
 }
 public XElement Serialize()
 {
     return(new XElement(UblNames.Cac + nameof(DocumentReference),
                         ID.Serialize(nameof(ID)),
                         CopyIndicator.Serialize(nameof(CopyIndicator)),
                         UUID.Serialize(nameof(UUID)),
                         IssueDate.Serialize(nameof(IssueDate)),
                         IssueTime.Serialize(nameof(IssueTime)),
                         DocumentTypeCode.Serialize(nameof(DocumentTypeCode)),
                         DocumentType.Serialize(nameof(DocumentType)),
                         XPath.Serialize(nameof(XPath)),
                         LanguageID.Serialize(nameof(LanguageID)),
                         LocaleCode.Serialize(nameof(LocaleCode)),
                         VersionID.Serialize(nameof(VersionID)),
                         DocumentStatusCode.Serialize(nameof(DocumentStatusCode)),
                         DocumentDescription.Serialize(nameof(DocumentDescription)),
                         Attachment?.Serialize(),
                         ValidityPeriod?.Serialize(nameof(ValidityPeriod)),
                         IssuerParty?.Serialize(nameof(IssuerParty))
                         ));
 }