Ayuda

Iniciado por Navidad, 25 Octubre 2012, 20:21 PM

0 Miembros y 1 Visitante están viendo este tema.

Navidad

Estoy en un proyecto, de la creación de un programa en capas en c#.

1ra capa: es un winform el cual cargara un archivo xml, posteriormente la pasara a una capa de de WCF.

2da capa: WCF el cual es la encargada de recibir el archivo xml y pasarla a la siguiente capa.

3ra capa: BS es la encargada de recibir el archivo xml y validarlo por medio de un XSD y un XSL, los cuales deben ser ubicados en una carpeta de recursos de este proyecto. Posteriormente en esta capa los valores del xml vienen dolarizados.

WS BCCR: Servicio Web expuesto por el Banco Central de Costa Rica, por medio del cual podemos obtener el tipo de cambio de referencia del dólar para la fecha indicada.

posteriormente enviar el archivo xml a base de datos...


Espero me puedan ayudar en algo, cualquier aporte sera de gran ayuda.

de antemano gracias.


Novlucker

¿Y cual sería la consulta? Parece más bien la letra de un ejercicio.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

.::IT::.

supongo que te refieres a esto:

http://indicadoreseconomicos.bccr.fi.cr/indicadoreseconomicos/WebServices/wsIndicadoresEconomicos.asmx

y quieres usar el web service desde tu aplicacion web pues lo tienes casi todo echo en .net solo agrega la referencia al web service y invoca al metodo:

ObtenerIndicadoresEconomicos

ObtenerIndicadoresEconomicosXML

o tambien puedes desde la consola de visual studio ejecutar:


wsdl http://indicadoreseconomicos.bccr.fi.cr/indicadoreseconomicos/WebServices/wsIndicadoresEconomicos.asmx?WSDL


eso te genera un archivo .cs para c# en el cual puedes usar en tu aplicacion
Simplemente .::IT::.

Navidad

#3
Novlucker

en si ese es el planteamiento, lo que necesito es en cualquier aporte de todo eso, me gustaria como hago para validar el xml contra el xsd.. seria de grana yuda el aporte




.::IT::.

si estoy trabando con eso, lo que me tira es un xml con el tipo de cambio del dolar, me podrias ayudar, como hago para tomar ese dato del xml o no es necesario.???

Navidad2

se ria algo como esto


servicio.wsObtener.... dd = new servicio.wsObtener();
dd.____________;

para pasar el objeto

xml wsd xsl se pueden hacer automaticos hay que cambiar u poco las validaciones suerte NAVIDAD

.::IT::.

#5
Según veo tienes dos métodos uno que devuelve un Dataset ( para usar .net es más fácil) y otro que devuelve un Xml en formato string(para consumirlo desde cualquier aplicación) bueno procedamos.

Para Invocar y recoger los datos desde webmethod "ObtenerIndicadoresEconomicos" bastaría con una función como la siguiente

Código (vbnet) [Seleccionar]

private DataTable ObtenerIndicadoresEconomicos()
{
           IniciarParametros();

           DataSet resul = myWs.ObtenerIndicadoresEconomicos(tcIndicador,
                                                             tcFechaInicio,
                                                             tcFechaFinal,
                                                             tcNombre,
                                                             tcSubNiveles);

           if (resul != null)
               return resul.Tables[0];
           else
               throw new Exception("No se encontraron resultados");
}


Y para "ObtenerIndicadoresEconomicosXML" seria:

Código (vbnet) [Seleccionar]

private DataTable ObtenerIndicadoresEconomicosXml()
{
           IniciarParametros();
           string resul = myWs.ObtenerIndicadoresEconomicosXML(tcIndicador,
                                                    tcFechaInicio,
                                                    tcFechaFinal,
                                                    tcNombre,
                                                    tcSubNiveles);
           XmlDocument myXml = new XmlDocument();
           myXml.LoadXml(resul);

           XmlNodeReader _reader = new XmlNodeReader(myXml);

           DataSet myDs = new DataSet();
           myDs.ReadXml(_reader);

           if (myDs.Tables != null)
               return myDs.Tables[0];
           else
               throw new Exception("No se encontraron resultados");
}


En donde :

"IniciarParametros()" es un metodo que incializa los valores para tcIndicador, tcFechaInicio, tcFechaFinal,tcNombre y tcSubNiveles respectivamente todos de tipo string segun indica el web service.

"myWs" es una clase de tipo "wsIndicadoresEconomicos" que me genero la utilidad wsdl de .net.

bueno aqui un ejemplo que hice.



https://rapidshare.com/#!download|701p11|2599448488|bccr.zip|27|0|0

Nota: La carga demora un poco por lo que te recomiendo usar subprocesos para ello podrias usar la clase Thread o un el control BackgroundWorker que es mi favorito por ser muy sencillo de usar.

Saludos!!!
Simplemente .::IT::.

Navidad

.::IT::.

Gracias por ese gran aporte, intentare trabajar con esos codigos cualquier duda ahi te escribo xD

me gustaria si me puedes ayudar con lo que sos las validaciones comparar el xml con el schema.

gracias xD

Novlucker

Lo que estas pidiendo no es ayuda, es el ejercicio completo, por que no muestras tus avances? :¬¬

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Navidad

el proyecto es grande, ya tengo el squema del archivo xml ahora neceito compararlos para ver si el archivo pasa la validación.

.::IT::.

Aqui ya tienes el XmlDocument

Código (vbnet) [Seleccionar]

string resul = myWs.ObtenerIndicadoresEconomicosXML(tcIndicador,
                                                    tcFechaInicio,
                                                    tcFechaFinal,
                                                    tcNombre,
                                                    tcSubNiveles);
           XmlDocument myXml = new XmlDocument();
           myXml.LoadXml(resul);


de hi ya solo lo comparas con tu esquema Xml mira este link:

http://msdn.microsoft.com/en-us/library/aa302294.aspx

espero te ayude!!

Saludos!!!
Simplemente .::IT::.