Servicios Web y los Esquemas XML

«Trabajando mucho», es una de las frases que siempre se escuchan de los colegas y compañeros de trabajo. Pues estoy en lo mismo, sin embargo extraigo algo muy importante de todo esto que es la experiencia y el conocimiento que se va logrando sobre un tema en especial.

Todo el fin de semana pasado y parte del inicio de la semana estuve encargado de un proyecto netamente basado en Servicios Web (XML), el cual consitía en crear un Servicio Web que a su vez este consumía de otro. Y lo importante de todo esto fué la foma en que se comunicaban estos servicios. Si bien es cierto todo es a través de XML es asunto está en como interpreta uno lo que le dice el otro. Es decir llevándolo a un plano real, por ejemplo, una palabra para la gente de un determindado lugar puede tener cierto significado pero esa misma palabra para la gente de otro lugar distinto tiene otro significado o se presta para distintas interpretaciones dependiendo del escenario, ¿No es así?.

Esto es exactamente lo que pasa con los Servicios Web que entre ellos se pasan datos XML pero uno debe saber lo que el otro le envía. ¿Y como se soluciona esto? pues a través de los esquemas (XSD). En los esquemas se definen los datos simples o estructurados usandos en el Servicio Web. Suena interesante ¿no?. XML Schema es un lenguaje de esquema utilizado para describir la estructura y las restricciones de los contenidos de los documentos XML de una forma muy precisa, más allá de las normas sintácticas impuestas por el propio lenguaje XML. Se consigue así, una percepción del tipo de documento con un nivel alto de abstracción.

Pues a veces no se puede tener ni idea de lo que encontramos en el esquema que puede ser todo un diagrama bastante grande de definiciones y relaciones de entidades y propiedades (como si se tratara de una base de datos).  Así que no basta que los desarrolladores solo sepamos exponer y consumir servicios Web, sino que además debemos ser capaces de saber leer e interpretar los esquemas XML. Felizmente no me fué tan mal, ya que muchas tareas de estas se simplificaron al desarrollar todos estos componentes con mi herramienta favorita de desarrollo: «Microsoft Visual Studio .NET», que por cierto ahora en su versión 2008 próxima a lanzarse.Ya les contaré como van mis primeras pruebas con esta versión que está que promete mucho.