Importar datos desde xml

11/08/2005 - 14:10 por Beren | Informe spam
Hola,

No sé si me voy a explicar bien. La cuestión es que necesitamos importar a
Crystal Reports unos datos que tenemos en un xml que también hemos creado
nosotros dinámicamente a partir de una base de datos.

Antes de todo, aclarar que no nos enteramos demasiado, que digamos, de cómo
va el xml, y no porque no lo hayamos intentado, pero se ve que no somos
demasiado inteligentes ;-)

Pero bueno, yendo al problema en sí, el hecho es que tenemos un archivo .xml
con los datos y otro archivo .xsd (es decir, un xml schema de esos) en el
que está el tipo de datos, que por lo que hemos leido es como tiene que ser.
¿Y qué nos pasa? Pues lo típico: Como que en inglés los números los escriben
del estilo: 9,543.02, los datos que son decimales nos marcan error, ya que
nosotros los hemos escrito los números del estilo 9.543,02.

Ya sabemos que al crear el xml podríamos hacerlo cambiando puntos por comas
y lo inverso pero, siendo xml algo hecho teóricamente para ser lo más
estándar posible, ¿no existe un tipo de decimal estilo "español"? O ¿se
puede (o se debe) definir un tipo simple basado en el decimal?

He estado mirando por Internet y, aunque parezca mentira, no he encontrado
nada sobre el tema.

Espero que se me entienda. Al fin y al cabo, el problema es el típico y
eterno que tienen los programadores desde siempre, ¿no?

Bueno, un saludo y gracias por la posible ayuda.

Preguntas similare

Leer las respuestas

#6 Miguel Angel Campos
07/09/2005 - 09:31 | Informe spam
No es del todo como crees, si sólo se considerara lo que dicen los
anglosajones no iriamos bien encaminados.
Como te comenté en el otro correo la forma de representar los datos está
perfectamente definida en el estandar y utiliza lo que se llama una cultura
invariante, es decir, una forma de representar los datos definida
claramente. De todas formas tienes que tener en cuenta que este proceso se
basa en conversiones de tipos de datos a cadenas y tratamiento de estas
cadenas, si estas transformaciones las haces en un sistema operativo
configurado en Ingles (que se que no es tu caso) las conversiones de
DateTime a string las hará en formato anglosajón, y si el programa que lee
el fichero XML resultante está instalado en un SO en español intenta
convertir la cadena a DateTime considerando unas reglas.
Si utilizas .NET en tu proyecto puedes modificar este comportamiento,
mediante la utilización de la clase CultureInfo.
Te adjunto un link por si te sirve de algo:
http://www.codeproject.com/dotnet/d...format.asp

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Beren" escribió en el mensaje
news:
Mostrar la cita
#7 skar
07/09/2005 - 18:53 | Informe spam
Tambien, pueden tener en cuenta que los documentos xml tienen que tener el
encoding especifico a cada lenguage (gringo UTF8)
otra cosa que se puede hacer, es el usar XML Schema y crear un Datatype
especifico para trabajar con fechas y numeros NO anglosajones:
dia: 22 de Julio de 2005 22/07/2005 versus 07/22/2005

"Miguel Angel Campos" <SPAMmacampos ARRUBA .idesarrollaSPAM.com> wrote in
message news:
Mostrar la cita
cultura
Mostrar la cita
un
Mostrar la cita
debe
Mostrar la cita
nada.
Mostrar la cita
el
Mostrar la cita
#8 Miguel Angel Campos
07/09/2005 - 19:06 | Informe spam
Pero te vuelvo a insistir que depende mucho de como se esté tratando dicho
fichero en XML.
Si por ejemplo lo lees con las clases de .NET, detectan el encoding que
tiene dicho fichero y actuan en consecuencia. Si lees el fichero mediante
otro procedimiento, ya sea un trozo de código en VB realizado por alguien,
puede que no detecte la codificación y se interprete mal.
Tienes que tener en cuenta que los schemas se utilizan para muchos
propositos, entre ellos para validar las comunicaciones entre WebServices, y
estos servicios no deberían entender de idiomas sino sólo de estandares.
Siempre que puedas deberías utilizar los formatos estandares para
intercambiar ficheros XML, y estos estandares estan bien definidos.
Un Saludo,

Miguel Angel Campos
MCAD.NET

"skar" escribió en el mensaje
news:%
Mostrar la cita
#9 Beren
08/09/2005 - 17:21 | Informe spam
Ok Miguel Ángel, entiendo las razones. No obstante, igual que en un schema
puedes marcar los decimales que tiene un tipo float, ¿tan difícil habría
sido poner otro, digamos, parámetro, que marcara en las fechas (por ejemplo)
el idioma en el que están y así, en comunicaciones entre equipos en
diferentes idiomas, entenderse? O un parámetro que dijera que el marcador de
decimales es un punto o una coma. Claro que si lo pienso bien, supongo que
esto complicaría mucho el tema. En fin, patatas en latín, como dice mi
madre. Es lo que hay.

Muchas gracias de todas formas por las aclaraciones. Me han ayudado a
situarme.

Un saludo.

"Miguel Angel Campos" <SPAMmacampos ARRUBA .idesarrollaSPAM.com> escribió en
el mensaje news:
Mostrar la cita
y
Mostrar la cita
el
Mostrar la cita
in
Mostrar la cita
está
Mostrar la cita
ayudó
Mostrar la cita
la
Mostrar la cita
en
Mostrar la cita
#10 Miguel Angel Campos
09/09/2005 - 08:56 | Informe spam
No es necesario un parametro, como te comenté antes está definido en el
estandar.
Por ejemplo, el tipo datetime se debe representar de la siguiente forma:
http://www.w3.org/TR/xmlschema-2/#dateTime
en el apartado Lexical representation.

Lo mismo ocurre con todos los tipos basicos, como te vuelvo a comentar, el
problema está en que muchas veces se utilizan librerias que no siguen estos
estandares, sino que por ejemplo interpretan el texto en función de la
configuración regional del usuario activo.

Espero que puedas importar tus datos al final correctamente.

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Beren" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida