docs: public static CmsXmlGroupContainer unmarshal(CmsObject cms, CmsResource resource, ServletRequest req)
      throws CmsXmlException, CmsLoaderException, CmsException {
  
          String rootPath = resource.getRootPath();
  
          // try to get the requested content from the current request attribute
          // this is also necessary for historic versions that have been loaded
          CmsXmlGroupContainer content = (CmsXmlGroupContainer)req.getAttribute(rootPath);
  
          if (content == null) {
              // unmarshal XML structure from the file content
              content = unmarshal(cms, resource);
              // store the content as request attribute for future read requests
              req.setAttribute(rootPath, content);
          }
  
          // return the result
          return content;
      }