Beispiel #1
0
        private void procesarTuple(XmlElement elemento)
        {
            string[] partes      = elemento.Name.Split(':');
            string   nombreTupla = partes[partes.Length - 1].Replace('-', '_');

            GeneradorClase generador = GeneradorClase.getInstance(_ensambladoCiente);

            object objetoInstancia = generador.ObtenerInstancia(nombreTupla);

            Type tipoInstancia = objetoInstancia.GetType();

            try
            {
                foreach (XmlElement hijo in elemento.ChildNodes)
                {
                    string   valor      = hijo.FirstChild.Value;
                    string[] hijoPartes = hijo.Name.Split(':');
                    string   nombreHijo = hijoPartes[hijoPartes.Length - 1];

                    rellenarAtributo(objetoInstancia, tipoInstancia, valor, nombreHijo);
                }
            }
            catch (InvalidCastException)
            {
                string valor = elemento.FirstChild.Value;
                rellenarAtributo(objetoInstancia, tipoInstancia, valor, "Valor");
            }

            //buscamos el contexto
            string    idContext = elemento.GetAttribute("contextRef");
            IContexto contexto  = (IContexto)_contextos[idContext];

            IConcepto conceptoInstancia = (IConcepto)objetoInstancia;

            conceptoInstancia.setContexto(contexto);
            IXBRLContenedorInstanciasObjetos contenedor = XBRLContenedorObjetosInstancias.ObtenerInstancia();

            contenedor.InsertarObjeto((IConcepto)objetoInstancia);
        }