/**
   * @param node
   * @param xmlKey
   */
  public XMLColumns(Node currentNode, XMLKey xmlKey) {
    this.superKey = xmlKey;

    List<Node> nodeList = getNodes(O_COLUMN, currentNode);
    if (ListUtil.isNotEmpty(nodeList)) {
      for (Node node : nodeList) {
        idList.add(getNodeText(META_REF, node));
      }
      log.debug(INITIALLIZED_NAME, "XMLColumns");
    }
  }
  /**
   * @param node
   * @param xmlIndexColumn
   */
  public XMLColumns(Node currentNode, XMLIndexColumn xmlIndexColumn) {
    this.superIndexColumn = xmlIndexColumn;

    List<Node> nodeList = getNodes(O_COLUMN, currentNode);
    if (ListUtil.isNotEmpty(nodeList)) {
      idList = new SimpleList<String>();
      for (Node node : nodeList) {
        idList.add(getNodeText(META_REF, node));
      }
      log.debug(INITIALLIZED_NAME, "XMLColumns");
    }
  }
  /**
   * @param node
   * @param xmlTable
   */
  public XMLColumns(Node currentNode, XMLTable xmlTable) {
    this.superTable = xmlTable;

    XMLColumn column = null;
    List<Node> nodeList = getNodes(O_COLUMN, currentNode);
    if (ListUtil.isNotEmpty(nodeList)) {
      for (Node node : nodeList) {
        column = new XMLColumn(node, this);
        add(column);
        IdCollector.put(column.getId(), column);
      }
      log.debug(INITIALLIZED_NAME, "XMLColumns");
    }
  }