docs: private String createStringValue(CmsObject cms, I_CmsXmlDocument document) {
  
          Element data = m_element.element(CmsXmlPage.NODE_CONTENT);
          if (data == null) {
              String content = m_element.getText();
              m_element.clearContent();
              int index = m_element.getParent().elements(m_element.getQName()).indexOf(m_element);
              m_element.addAttribute(CmsXmlPage.ATTRIBUTE_NAME, getName() + index);
              m_element.addElement(CmsXmlPage.NODE_LINKS);
              m_element.addElement(CmsXmlPage.NODE_CONTENT).addCDATA(content);
              data = m_element.element(CmsXmlPage.NODE_CONTENT);
          }
          Attribute enabled = m_element.attribute(CmsXmlPage.ATTRIBUTE_ENABLED);
  
          String content = "";
          if ((enabled == null) || Boolean.valueOf(enabled.getText()).booleanValue()) {
  
              content = data.getText();
  
              CmsLinkTable linkTable = getLinkTable();
              if (!linkTable.isEmpty()) {
  
                  // link processing: replace macros with links
                  CmsLinkProcessor linkProcessor = document.getLinkProcessor(cms, linkTable);
                  try {
                      content = linkProcessor.processLinks(content);
                  } catch (ParserException e) {
                      // should better not happen
                      LOG.error(Messages.get().getBundle().key(Messages.ERR_XMLCONTENT_LINK_PROCESS_FAILED_0), e);
                  }
              }
          }
          return content;
      }