docs: @Override
      public Module parse(final Element dcRoot, final Locale locale) {
  
          boolean foundSomething = false;
          final DCModule dcm = new DCModuleImpl();
  
          final List<Element> titles = dcRoot.getChildren("title", getDCNamespace());
          if (!titles.isEmpty()) {
              foundSomething = true;
              dcm.setTitles(parseElementList(titles));
          }
  
          final List<Element> creators = dcRoot.getChildren("creator", getDCNamespace());
          if (!creators.isEmpty()) {
              foundSomething = true;
              dcm.setCreators(parseElementList(creators));
          }
  
          final List<Element> subjects = dcRoot.getChildren("subject", getDCNamespace());
          if (!subjects.isEmpty()) {
              foundSomething = true;
              dcm.setSubjects(parseSubjects(subjects));
          }
  
          final List<Element> descriptions = dcRoot.getChildren("description", getDCNamespace());
          if (!descriptions.isEmpty()) {
              foundSomething = true;
              dcm.setDescriptions(parseElementList(descriptions));
          }
  
          final List<Element> publishers = dcRoot.getChildren("publisher", getDCNamespace());
          if (!publishers.isEmpty()) {
              foundSomething = true;
              dcm.setPublishers(parseElementList(publishers));
          }
  
          final List<Element> contributors = dcRoot.getChildren("contributor", getDCNamespace());
          if (!contributors.isEmpty()) {
              foundSomething = true;
              dcm.setContributors(parseElementList(contributors));
          }
  
          final List<Element> dates = dcRoot.getChildren("date", getDCNamespace());
          if (!dates.isEmpty()) {
              foundSomething = true;
              dcm.setDates(parseElementListDate(dates, locale));
          }
  
          final List<Element> types = dcRoot.getChildren("type", getDCNamespace());
          if (!types.isEmpty()) {
              foundSomething = true;
              dcm.setTypes(parseElementList(types));
          }
  
          final List<Element> formats = dcRoot.getChildren("format", getDCNamespace());
          if (!formats.isEmpty()) {
              foundSomething = true;
              dcm.setFormats(parseElementList(formats));
          }
  
          final List<Element> identifiers = dcRoot.getChildren("identifier", getDCNamespace());
          if (!identifiers.isEmpty()) {
              foundSomething = true;
              dcm.setIdentifiers(parseElementList(identifiers));
          }
  
          final List<Element> sources = dcRoot.getChildren("source", getDCNamespace());
          if (!sources.isEmpty()) {
              foundSomething = true;
              dcm.setSources(parseElementList(sources));
          }
  
          final List<Element> languages = dcRoot.getChildren("language", getDCNamespace());
          if (!languages.isEmpty()) {
              foundSomething = true;
              dcm.setLanguages(parseElementList(languages));
          }
  
          final List<Element> relations = dcRoot.getChildren("relation", getDCNamespace());
          if (!relations.isEmpty()) {
              foundSomething = true;
              dcm.setRelations(parseElementList(relations));
          }
  
          final List<Element> coverages = dcRoot.getChildren("coverage", getDCNamespace());
          if (!coverages.isEmpty()) {
              foundSomething = true;
              dcm.setCoverages(parseElementList(coverages));
          }
  
          final List<Element> rights = dcRoot.getChildren("rights", getDCNamespace());
          if (!rights.isEmpty()) {
              foundSomething = true;
              dcm.setRightsList(parseElementList(rights));
          }
  
          if (foundSomething) {
              return dcm;
          } else {
              return null;
          }
  
      }