Reglas de Codificación

LIBP-0007 (Libro de pautas)

Los ficheros WSDLs, esquemas XSD y mensajes SOAPs intercambiados dentro de un Servicio Web deben seguir las normas de codificación y formatos especificados en MADEJA.

Pautas

TítuloCarácter
UTF-8Obligatoria
Codificación de los NamespacesObligatoria
Codificación de los WSDLsRecomendada

UTF-8

Los ficheros WSDLs, esquemas xsd y mensajes SOAPs intercambiados dentro de un Servicio Web, deberán estar codificados en UTF-8

Codificación de los Namespaces

Los namespaces dentro de los WSDLs y esquemas empleados dentro de los Servicios Web deben seguir el formato normalizado por MADEJA, el cual incluye una referencia a la Junta de Andalucía, consejería, aplicación, servicio, componente y número de versión.

La definición de los namespaces dentro de los Servicios Webs es un tema muy importante a tener en cuenta. Una correcta definición de los mismos favorece la reutilización y catalogación de los servicios, da soporte a los procesos de versionado y posibilita la creación de cierto tipo de servicios horizontales de enrutación y mediación.

Los namespaces dentro de los WSDLs y esquemas empleados dentro de los Servicios Web, se normalizan dentro de MADEJA.

Para la definición de los namespaces se puede optar por emplear URIs basadas en URLs o urn. El formato recomendado por MADEJA es el de urn, al ser más claro y requerir menos procesos de normalización que el de URLs.

El formato recomendado es el presentado a continuación.

Formato

urn:juntadeandalucia:(consejería):(aplicación):(servicio -opc):(componente -opc):versión

Descripción de los campos

ElementoObligatorioDescripciónComentarios
juntadeandaluciaSIReferencia a la Junta de Andalucía-
ConsejeríaSIReferencia a la consejería impulsora del servicio-
AplicaciónSINombre de la aplicación a la que pertenece el servicio-
ServicioNONombre del servicio-
ComponenteNONombre del elemento o componente-
VersiónSINúmero de versión-

Ejemplos


urn:juntadeandalucia:cice:eco:ecobus:v1.1

urn:juntadeandalucia:cice:g3:pdcsrv:bind:v1.0

urn:juntadeandalucia:cice:g3:pdcsrv:intf:v1.1

urn:juntadeandalucia:cice:g3:pdcsrv:types:v1.1

Codificación de los WSDLs

Para el caso de Servicios Webs codificados según la aproximación Contract-first en MADEJA se recomienda separar las dos partes lógicas de un WSDL (parte abstracta y parte concreta) en dos o más ficheros WSDLs y XSDs.

Un WSDL puede ser dividido en dos partes; la parte abstracta y la parte concreta.

La parte abstracta está formada por los elementos <types>, <message> y portType (o <interface> en 2.0), mientras que a la parte concreta, le corresponden los elementos <binding> y <service>.

Para el caso de Servicios Webs codificados según la aproximación Contract-first en MADEJA se recomienda separar ambas partes lógicas en dos o más ficheros WSDLs y XSDs. El objetivo principal de esta división es favorecer la reutilización de los distintos elementos que componen el servicio web y facilitar las operaciones de versionado sobre los mismos.

Por ejemplo, la parte abstracta se podría dividir en otras dos partes, una compuesta por ficheros xsd donde se recogen los elementos type, y otra compuesta por un fichero WSDL, que importa los xsd anteriores y donde se definirían los elementos messages y portType. La parte concreta estaría formada por otro fichero wsdl que importaría al WSDL anterior y donde se definiría los elementos bindings y services del Servicio Web.

Se puede encontar un ejemplo real en la especificación WSRP

En el caso de que el Servicio Web incluyan elementos como seguridad, Addressing, etc, el WSDL incluirá las políticas empleadas según se define en la especificación WS-Policy.