code: public void parseConstructorArgElement(Element ele, BeanDefinition bd) {
      String indexAttr = ele.getAttribute(INDEX_ATTRIBUTE);
      String typeAttr = ele.getAttribute(TYPE_ATTRIBUTE);
      String nameAttr = ele.getAttribute(NAME_ATTRIBUTE);
      if (StringUtils.hasLength(indexAttr)) {
        try {
          int index = Integer.parseInt(indexAttr);
          if (index < 0) {
            error("'index' cannot be lower than 0", ele);
          } else {
            try {
              this.parseState.push(new ConstructorArgumentEntry(index));
              Object value = parsePropertyValue(ele, bd, null);
              ConstructorArgumentValues.ValueHolder valueHolder = new ConstructorArgumentValues.ValueHolder(
                  value);
              if (StringUtils.hasLength(typeAttr)) valueHolder.setType(typeAttr);
              if (StringUtils.hasLength(nameAttr)) valueHolder.setName(nameAttr);
              valueHolder.setSource(extractSource(ele));
              if (bd.getConstructorArgumentValues().hasIndexedArgumentValue(index)) {
                error("Ambiguous constructor-arg entries for index " + index, ele);
              } else {
                bd.getConstructorArgumentValues().addIndexedArgumentValue(index, valueHolder);
              }
            } finally {
              this.parseState.pop();
            }
          }
        } catch (NumberFormatException ex) {
          error("Attribute 'index' of tag 'constructor-arg' must be an integer", ele);
        }
      } else {
        try {
          this.parseState.push(new ConstructorArgumentEntry());
          Object value = parsePropertyValue(ele, bd, null);
          ConstructorArgumentValues.ValueHolder valueHolder = new ConstructorArgumentValues.ValueHolder(value);
          if (StringUtils.hasLength(typeAttr)) valueHolder.setType(typeAttr);
          if (StringUtils.hasLength(nameAttr)) valueHolder.setName(nameAttr);
          valueHolder.setSource(extractSource(ele));
          bd.getConstructorArgumentValues().addGenericArgumentValue(valueHolder);
        } finally {
          this.parseState.pop();
        }
      }
    }
docs: Parse a constructor-arg element.
  
  @param ele a {@link org.w3c.dom.Element} object.
  @param bd a {@link org.springframework.beans.factory.config.BeanDefinition} object.