docs: protected CmsXmlContentProperty parseProperty(CmsObject cms, I_CmsXmlContentLocation field) {
  
          String name = getString(cms, field.getSubValue("PropertyName"));
          String widget = getString(cms, field.getSubValue("Widget"));
          if (CmsStringUtil.isEmptyOrWhitespaceOnly(widget)) {
              widget = "string";
          }
          String type = getString(cms, field.getSubValue("Type"));
          if (CmsStringUtil.isEmptyOrWhitespaceOnly(type)) {
              type = "string";
          }
          String widgetConfig = getString(cms, field.getSubValue("WidgetConfig"));
          String ruleRegex = getString(cms, field.getSubValue("RuleRegex"));
          String ruleType = getString(cms, field.getSubValue("RuleType"));
          String default1 = getString(cms, field.getSubValue("Default"));
          String error = getString(cms, field.getSubValue("Error"));
          String niceName = getString(cms, field.getSubValue("DisplayName"));
          String description = getString(cms, field.getSubValue("Description"));
  
          CmsXmlContentProperty prop = new CmsXmlContentProperty(
              name,
              type,
              widget,
              widgetConfig,
              ruleRegex,
              ruleType,
              default1,
              niceName,
              description,
              error,
              "true");
          return prop;
      }