private Field parseGroupField(final NodeList nodeList, final int nodeIndex) throws XPathExpressionException
    {
        final Node node = nodeList.item(nodeIndex);
        final String dimensionTypeName = getAttributeValue(node, "dimensionType", "groupSizeEncoding");
        Type dimensionType = typeByNameMap.get(dimensionTypeName);
        if (dimensionType == null)
        {
            handleError(node, "could not find dimensionType: " + dimensionTypeName);
        }
        else if (!(dimensionType instanceof CompositeType))
        {
            handleError(node, "dimensionType should be a composite type: " + dimensionTypeName);
            dimensionType = null;
        }
        else
        {
            ((CompositeType)dimensionType).checkForWellFormedGroupSizeEncoding(node);
        }

        final Field field = new Field.Builder()
            .name(getAttributeValue(node, "name"))
            .description(getAttributeValueOrNull(node, "description"))
            .id(Integer.parseInt(getAttributeValue(node, "id")))
            .blockLength(Integer.parseInt(getAttributeValue(node, "blockLength", "0")))
            .sinceVersion(Integer.parseInt(getAttributeValue(node, "sinceVersion", "0")))
            .deprecated(Integer.parseInt(getAttributeValue(node, "deprecated", "0")))
            .dimensionType((CompositeType)dimensionType)
            .build();

        XmlSchemaParser.checkForValidName(node, field.name());

        field.groupFields(parseMembers(node)); // recursive call

        return field;
    }
Return the encodedLength of the {@link Message} in bytes including any padding.

@return the encodedLength of the {@link Message} in bytes including any padding.
sbe-tool/src/main/java/uk/co/real_logic/sbe/xml/Message.java