/**
   * Rellena los datos del bean a partir de un nodo DOM en formato TDI XML
   *
   * @param __node Nodo DOM que contiene los datos del bean en formato TDI XML
   * @throws Exception Cuando el stream no tiene los datos adecuados para rellenar el bean
   */
  public void fromXML(org.w3c.dom.Element __node) throws Exception {
    {
      // Buscar el tamaqo del array
      org.w3c.dom.Element __element = getNodeByName(__node, "subproperties");
      int __size = 0;
      if (__element != null) {
        __size = Integer.parseInt(__element.getAttribute("size"));
      }
      // Rellenar los valores del array
      for (int i = 0; i < __size; i++) {
        org.w3c.dom.Element __element2 = getNodeByName(__element, "subproperties_" + i);
        org.qualipso.advdoc.ws.client.metadata.beans.ResourceElement __entry;
        if (__element2.getAttribute("package") != null
            && __element2.getAttribute("package").length() != 0) {
          __entry =
              (org.qualipso.advdoc.ws.client.metadata.beans.ResourceElement)
                  Class.forName(
                          __element2.getAttribute("package")
                              + "."
                              + __element2.getAttribute("type"))
                      .newInstance();
        } else {
          __entry = new org.qualipso.advdoc.ws.client.metadata.beans.ResourceElement();
        }
        __entry.fromXML(__element2);
        addSubproperties(__entry);
      }
    }

    setChanged();
  }