docs: public void checkForWellFormedVariableLengthDataEncoding(final Node node)
      {
          final EncodedDataType lengthType = (EncodedDataType)containedTypeByNameMap.get("length");
  
          if (lengthType == null)
          {
              XmlSchemaParser.handleError(node, "composite for variable length data encoding must have \"length\"");
          }
          else
          {
              final PrimitiveType primitiveType = lengthType.primitiveType();
              if (!isUnsigned(primitiveType))
              {
                  XmlSchemaParser.handleError(node, "\"length\" must be unsigned type");
              }
              else if (primitiveType != UINT8 && primitiveType != UINT16 && primitiveType != UINT32)
              {
                  XmlSchemaParser.handleWarning(node, "\"length\" should be UINT8, UINT16, or UINT32");
              }
  
              validateGroupMaxValue(node, primitiveType, lengthType.maxValue());
          }
  
          if ("optional".equals(getAttributeValueOrNull(node, "presence")))
          {
              XmlSchemaParser.handleError(
                  node, "composite for variable length data encoding cannot have presence=\"optional\"");
          }
  
          if (containedTypeByNameMap.get("varData") == null)
          {
              XmlSchemaParser.handleError(node, "composite for variable length data encoding must have \"varData\"");
          }
      }