docs: protected void addDefaultCheckRules(
          CmsXmlContentDefinition rootContentDefinition,
          I_CmsXmlSchemaType schemaType,
          String elementPath)
      throws CmsXmlException {
  
          if ((schemaType != null) && schemaType.isSimpleType()) {
              if ((schemaType.getMinOccurs() == 0)
                  && (CmsXmlVfsFileValue.TYPE_NAME.equals(schemaType.getTypeName())
                      || CmsXmlVarLinkValue.TYPE_NAME.equals(schemaType.getTypeName()))
                  && !m_relationChecks.containsKey(elementPath)
                  && !m_relations.containsKey(elementPath)) {
                  // add default check rule for the element
                  addCheckRule(rootContentDefinition, elementPath, null, null);
              }
          } else {
              // recursion required
              CmsXmlContentDefinition nestedContentDefinition = rootContentDefinition;
              if (schemaType != null) {
                  CmsXmlNestedContentDefinition nestedDefinition = (CmsXmlNestedContentDefinition)schemaType;
                  nestedContentDefinition = nestedDefinition.getNestedContentDefinition();
              }
              Iterator<String> itElems = nestedContentDefinition.getSchemaTypes().iterator();
              while (itElems.hasNext()) {
                  String element = itElems.next();
                  String path = (schemaType != null) ? CmsXmlUtils.concatXpath(elementPath, element) : element;
                  I_CmsXmlSchemaType nestedSchema = nestedContentDefinition.getSchemaType(element);
                  if ((schemaType == null) || !nestedSchema.equals(schemaType)) {
                      addDefaultCheckRules(rootContentDefinition, nestedSchema, path);
                  }
              }
          }
      }