code: @Override
      public void readElement(final XMLExtendedStreamReader reader, final ServerProvisioningDescription result) throws XMLStreamException {
          for (int i = 0; i < reader.getAttributeCount(); i++) {
              final Attribute attribute = Attribute.of(reader.getAttributeName(i));
              switch (attribute) {
                  case COPY_MODULE_ARTIFACTS:
                      result.setCopyModuleArtifacts(Boolean.parseBoolean(reader.getAttributeValue(i)));
                      break;
                  case EXTRACT_SCHEMAS:
                      result.setExtractSchemas(Boolean.parseBoolean(reader.getAttributeValue(i)));
                      break;
                  case EXTRACT_SCHEMAS_GROUPS:
                      result.setExtractSchemasGroups(reader.getAttributeValue(i));
                      break;
                  case EXCLUDE_DEPENDENCIES:
                      result.setExcludeDependencies(Boolean.parseBoolean(reader.getAttributeValue(i)));
                      break;
                  default:
                      throw ParsingUtils.unexpectedAttribute(reader, i);
              }
          }
  
          while (reader.hasNext()) {
              switch (reader.nextTag()) {
                  case XMLStreamConstants.END_ELEMENT: {
                      return;
                  }
                  case XMLStreamConstants.START_ELEMENT: {
                      final Element element = Element.of(reader.getLocalName());
  
                      switch (element) {
                          case FEATURE_PACKS:
                              parseFeaturePacks(reader, result);
                              break;
                          case VERSION_OVERRIDES:
                              parseVersionOverrides(reader, result);
                              break;
                          case COPY_ARTIFACTS:
                              copyArtifactsModelParser.parseCopyArtifacts(reader, result.getCopyArtifacts());
                              break;
                          default:
                              throw new XMLStreamException(String.format("Unknown element: '%s', elementName: %s, localName: %s", element, reader.getName(), reader.getLocalName()), reader.getLocation());
                              //throw ParsingUtils.unexpectedContent(reader);
                      }
                      break;
                  }
                  default: {
                      throw ParsingUtils.unexpectedContent(reader);
                  }
              }
          }
          throw ParsingUtils.endOfDocument(reader.getLocation());
      }
docs: /*
  we only override this method, for now only change new EXTRACT_SCHEMAS_GROUPS attribute