docs: public static CmsXmlContentDefinition unmarshal(InputSource source, String schemaLocation, EntityResolver resolver)
      throws CmsXmlException {
  
          schemaLocation = translateSchema(schemaLocation);
          CmsXmlContentDefinition result = getCachedContentDefinition(schemaLocation, resolver);
          if (result == null) {
              // content definition was not found in the cache, unmarshal the XML document
              if (null == source) {
                  throw new CmsXmlException(
                      Messages.get().container(
                          Messages.ERR_UNMARSHALLING_XML_DOC_1,
                          String.format("schemaLocation: '%s'. source: null!", schemaLocation)));
              }
              Document doc = CmsXmlUtils.unmarshalHelper(source, resolver);
              result = unmarshalInternal(doc, schemaLocation, resolver);
          }
          return result;
      }