docs: protected final Element generateSubjectElement(final DCSubject subject) {
  
          final Element subjectElement = new Element("subject", getDCNamespace());
  
          final String taxonomyUri = subject.getTaxonomyUri();
          final String value = subject.getValue();
  
          if (taxonomyUri != null) {
  
              final Attribute resourceAttribute = new Attribute("resource", taxonomyUri, getRDFNamespace());
  
              final Element topicElement = new Element("topic", getTaxonomyNamespace());
              topicElement.setAttribute(resourceAttribute);
  
              final Element descriptionElement = new Element("Description", getRDFNamespace());
              descriptionElement.addContent(topicElement);
  
              if (value != null) {
                  final Element valueElement = new Element("value", getRDFNamespace());
                  valueElement.addContent(value);
                  descriptionElement.addContent(valueElement);
              }
  
              subjectElement.addContent(descriptionElement);
  
          } else {
              subjectElement.addContent(value);
          }
  
          return subjectElement;
      }