public static MarriageDetailsRequest xmlToModel(
      MarriageDetailsRequestDocument marriageDetailsRequestDoc) {
    MarriageDetailsRequestDocument.MarriageDetailsRequest marriageDetailsRequestXml =
        marriageDetailsRequestDoc.getMarriageDetailsRequest();
    Calendar calendar = Calendar.getInstance();
    LocalTime localTime = new LocalTime();
    List list = new ArrayList();
    MarriageDetailsRequest marriageDetailsRequest = new MarriageDetailsRequest();
    marriageDetailsRequest.fillCommonModelInfo(marriageDetailsRequest, marriageDetailsRequestXml);

    if (marriageDetailsRequestXml.getFormat() != null)
      marriageDetailsRequest.setFormat(
          fr.cg95.cvq.business.request.civil.MarriageCertificateFormatType.forString(
              marriageDetailsRequestXml.getFormat().toString()));
    else
      marriageDetailsRequest.setFormat(
          fr.cg95.cvq.business.request.civil.MarriageCertificateFormatType
              .getDefaultMarriageCertificateFormatType());

    marriageDetailsRequest.setCopies(marriageDetailsRequestXml.getCopies());

    marriageDetailsRequest.setMarriageHusbandLastName(
        marriageDetailsRequestXml.getMarriageHusband().getMarriageHusbandLastName());

    marriageDetailsRequest.setMarriageWifeFirstNames(
        marriageDetailsRequestXml.getMarriageWife().getMarriageWifeFirstNames());

    marriageDetailsRequest.setComment(marriageDetailsRequestXml.getComment());

    marriageDetailsRequest.setRequesterQualityPrecision(
        marriageDetailsRequestXml.getRequesterQualityPrecision());

    marriageDetailsRequest.setFatherFirstNames(
        marriageDetailsRequestXml.getFatherInformation().getFatherFirstNames());

    marriageDetailsRequest.setMarriagePostalCode(
        marriageDetailsRequestXml.getMarriage().getMarriagePostalCode());

    marriageDetailsRequest.setMotherMaidenName(
        marriageDetailsRequestXml.getMotherInformation().getMotherMaidenName());

    marriageDetailsRequest.setMarriageHusbandFirstNames(
        marriageDetailsRequestXml.getMarriageHusband().getMarriageHusbandFirstNames());

    if (marriageDetailsRequestXml.getRequesterQuality() != null)
      marriageDetailsRequest.setRequesterQuality(
          fr.cg95.cvq.business.request.civil.MarriageRequesterQualityType.forString(
              marriageDetailsRequestXml.getRequesterQuality().toString()));
    else
      marriageDetailsRequest.setRequesterQuality(
          fr.cg95.cvq.business.request.civil.MarriageRequesterQualityType
              .getDefaultMarriageRequesterQualityType());

    marriageDetailsRequest.setMarriageCity(
        marriageDetailsRequestXml.getMarriage().getMarriageCity());

    marriageDetailsRequest.setMarriageWifeLastName(
        marriageDetailsRequestXml.getMarriageWife().getMarriageWifeLastName());

    calendar = marriageDetailsRequestXml.getMarriage().getMarriageDate();
    if (calendar != null) {
      marriageDetailsRequest.setMarriageDate(calendar.getTime());
    }

    marriageDetailsRequest.setFatherLastName(
        marriageDetailsRequestXml.getFatherInformation().getFatherLastName());

    if (marriageDetailsRequestXml.getRelationship() != null)
      marriageDetailsRequest.setRelationship(
          fr.cg95.cvq.business.request.civil.MarriageRelationshipType.forString(
              marriageDetailsRequestXml.getRelationship().toString()));
    else
      marriageDetailsRequest.setRelationship(
          fr.cg95.cvq.business.request.civil.MarriageRelationshipType
              .getDefaultMarriageRelationshipType());

    marriageDetailsRequest.setMotherFirstNames(
        marriageDetailsRequestXml.getMotherInformation().getMotherFirstNames());

    if (marriageDetailsRequestXml.getMotive() != null)
      marriageDetailsRequest.setMotive(
          fr.cg95.cvq.business.request.civil.MarriageCertificateMotiveType.forString(
              marriageDetailsRequestXml.getMotive().toString()));
    else
      marriageDetailsRequest.setMotive(
          fr.cg95.cvq.business.request.civil.MarriageCertificateMotiveType
              .getDefaultMarriageCertificateMotiveType());

    return marriageDetailsRequest;
  }