¡Hola a tod@s!
Este es el estreno del Blog AS.KAC (A Spanish Dummy on the King Arthur´s Court), así que dejar que me presente. Mi nombre es Eugenio López de Elorriaga y Prieto, y tengo 33 añazos. Pese a eso me sigo considerando un Dummy, o de otra forma, un aprendiz, en esto de la programación (bueno en esto y en casi todo).
Estudié Agrónomos (parte de la carrera al menos), y gracias a un buen amigo y un maestro para mi en esto de la informática, Luís de Santiago (gracias Tio Luiso), empecé en esto, y gracias a el en gran parte sigo aprendiendo y disfrutando de este trabajo.
Llevo desde hace algo menos de seis años como desarrollador, pero hasta hace menos de un año trabajaba con Visual FoxPro, y soy como el que dice un recién llegado al mundo .Net. Eso si he llegado a el en la mejor empresa en que he estado.
Por cosas de la vida, estoy desde hace unos meses trabajando con BizTalk, y como los Blogs hasta ahora me han sacado de muchos líos me he dicho "Macho, es hora de que tu también aportes algo a los demás".Esto, junto con el ofrecimiento de kartones (gracia tío) de alojar este Blog me han traído hasta aquí.
Con lo que he contado ya os imaginaréis que es posible que estos post quizás no tengan demasiado interés para gente con más experiencia pero bueno, allá vamos.
Para llevar adelante este Blog cuento con las experiencias que voy teniendo en el trabajo junto con dos grandes tipos y mejores compañeros (Juanjo y Miguel Angel), así como con la complicidad de mi pareja, la mejor mujer que uno pueda tener; gracias por todo Carmen.
Bueno no me enrollo más y empezamos con ello.
El otro día nos encontramos con la necesidad de retirar, en los documentos resultado de ejecutar un mapeo en BizTalk, el prefijo de espacio de nombres ns0.
Es decir se nos pedía que se usase en su lugar un espacio de nombres por defecto.
Para hacer esto, encontramos dos caminos.
Por un lado se puede dejar el esquema de la izquierda del mapeo con la propiedad target namespace en vacío, con lo que BizTalk no nos sacará este ns0, pero por que en realidad no aparecerá como namespace este esquema, con lo que se podrán producir conflictos con otros esquemas que tengan elementos de igual nombre (enlace).
Lo que finalmente hicimos es un poco más elaborado, pero permite obtener lo que pretendíamos sin esos efectos adversos: modificamos el xslt que nos produce el mapa, y lo usamos a su vez en otro mapa. No os preocupéis que lo explico poco a poco :_).
Pasos:
1.-Se genera el mapa (.btm), normalmente. Con sus esquemas inicial y final (incluso podría ser el mismo esquema el inicial y el final).
2.-Se valida el mapa (Validate Map) con lo que nos genera dos archivos xml
uno con la transformación xslt y otro auxiliar xml (Extension Object xml).
3.-Añadimos estos dos ficheros a nuestro proyecto (los necesitaremos más adelante).
4.-Modificamos el archivo xsl. Lo abrimos con cualquier editor de xml, substituimos xmlns:ns0= por xmlns= ; cambiamos todas las apariciones de <ns0: por< y de </ns0: por </ .
5.-Creamos un nuevo mapa con los mismos esquemas inicial y final del mapa inicial (punto 1). No hacemos ninguna correspondencia sobre el , tan solo damos a la propiedad Custom Xsl Path la ruta del archivo xsl modificado (punto 4) y a la propiedad Custom Extension Xml el valor del archivo xml generado en la validación (punto 2), que añadimos al proyecto (punto 3).
Con esto ya estaría hecho todo.
Espero que os sirva de ayuda.
Algo similar se podría emplear para cambiar el namespace de nso a cualquier otro valor. SaludOS.