docs: protected I_CmsXmlContentValue addValue(
          CmsObject cms,
          Element parent,
          I_CmsXmlSchemaType type,
          Locale locale,
          int insertIndex) {
  
          // first generate the XML element for the new value
          Element element = type.generateXml(cms, this, parent, locale);
          // detach the XML element from the appended position in order to insert it at the required position
          element.detach();
          // add the XML element at the required position in the parent XML node
          CmsXmlGenericWrapper.content(parent).add(insertIndex, element);
          // create the type and return it
          I_CmsXmlContentValue value = type.createValue(this, element, locale);
          // generate the default value again - required for nested mappings because only now the full path is available
          String defaultValue = m_contentDefinition.getContentHandler().getDefault(cms, value, locale);
          if (defaultValue != null) {
              // only if there is a default value available use it to overwrite the initial default
              value.setStringValue(cms, defaultValue);
          }
          // finally return the value
          return value;
      }