docs: private void parseLdapAuthorization_1_5(final XMLExtendedStreamReader reader,
              final ModelNode realmAddress, final List<ModelNode> list) throws XMLStreamException {
          ModelNode addr = realmAddress.clone().add(AUTHORIZATION, LDAP);
          ModelNode ldapAuthorization = Util.getEmptyOperation(ADD, addr);
  
          list.add(ldapAuthorization);
  
          Set<Attribute> required = EnumSet.of(Attribute.CONNECTION);
          final int count = reader.getAttributeCount();
          for (int i = 0; i < count; i++) {
              final String value = reader.getAttributeValue(i);
              if (!isNoNamespaceAttribute(reader, i)) {
                  throw unexpectedAttribute(reader, i);
              } else {
                  final Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i));
                  required.remove(attribute);
                  switch (attribute) {
                      case CONNECTION: {
                          LdapAuthorizationResourceDefinition.CONNECTION.parseAndSetParameter(value, ldapAuthorization, reader);
                          break;
                      }
                      default: {
                          throw unexpectedAttribute(reader, i);
                      }
                  }
              }
          }
  
          if (required.isEmpty() == false) {
              throw missingRequired(reader, required);
          }
  
          Set<Element> foundElements = new HashSet<Element>();
          while (reader.hasNext() && reader.nextTag() != END_ELEMENT) {
              requireNamespace(reader, namespace);
              final Element element = Element.forName(reader.getLocalName());
              if (foundElements.add(element) == false) {
                  throw unexpectedElement(reader); // Only one of each allowed.
              }
              switch (element) {
                  case USERNAME_TO_DN: {
                      switch (namespace.getMajorVersion()) {
                          case 1: // 1.5 up to but not including 2.0
                              parseUsernameToDn_1_5(reader, addr, list);
                              break;
                          default: // 2.0 and onwards
                              parseUsernameToDn_2_0(reader, addr, list);
                              break;
                      }
  
                      break;
                  }
                  case GROUP_SEARCH: {
                      switch (namespace) {
                          case DOMAIN_1_5:
                          case DOMAIN_1_6:
                              parseGroupSearch_1_5(reader, addr, list);
                              break;
                          default:
                              parseGroupSearch_1_7_and_2_0(reader, addr, list);
                              break;
                      }
                      break;
                  }
                  default: {
                      throw unexpectedElement(reader);
                  }
              }
          }
      }