docs: private List<XsdElement> getAllElementsRecursively(XsdAbstractElement element) {
          List<XsdElement> allGroupElements = new ArrayList<>();
          List<XsdAbstractElement> directElements = element.getXsdElements().collect(Collectors.toList());
  
          allGroupElements.addAll(
                  directElements.stream()
                          .filter(elem1 -> elem1 instanceof XsdElement)
                          .map(elem1 -> (XsdElement) elem1)
                          .collect(Collectors.toList()));
  
          for (XsdAbstractElement elem : directElements) {
              if ((elem instanceof XsdMultipleElements || elem instanceof XsdGroup) && elem.getXsdElements() != null) {
                  allGroupElements.addAll(getAllElementsRecursively(elem));
              }
          }
  
          return allGroupElements;
      }