Mensajería


Flujo de mensajes

 

Para poder realizar cualquier interacción con la plataforma es necesario haber abierto previamente una  sesión (Ver Sesión Abrir).Una vez abierta, se realizan las operaciones, se cierra la sesión (Ver Sesión Cerrar) y finaliza el proceso. 

 

Flujo básico de reserva: 

 

Después de abrir la sesión se debe realizar una petición de disponibilidad de hotel con los parámetros deseados. La búsqueda se puede realizar tantas veces como se considere. Una vez seleccionado el hotel  de la respuesta de disponibilidad, se puede bloquear. El Bloqueo de Hotel siempre se realiza sobre la  última disponibilidad.

 

Una vez bloqueado el hotel, podemos proceder a cerrar la reserva. La plataforma soporta “carrito de la  compra”, por lo que se pueden ir eliminando o añadiendo nuevos bloqueos al carrito (Ver Bloqueo Servicio). 

Cuando la reserva ya está cerrada se procede a cerrar la sesión y finaliza el proceso.

 

Nomenclatura de definición de mensajes

 

Para la definición de los mensajes XML se utiliza la siguiente nomenclatura. 

 

Nombre del elemento: descripción del elemento.

 

Elemento

O

Tipo de datos

Restricciones

Descripción

@elementoAtributo

S

Integer 

Valor mínimo: 0 

Descripción del elemento simple

elementoSimple 

S

String 

Longitud: 10 

Descripción del elemento simple

elementoGrupo 

N

ElementoGrupo(Grupo)

Ver definición 

Ver definición

elementoComplejo 

S

ElementoComplejo 

Ver definición 

Ver definición

 


 

Utilizado en:

elementoComplejo1 

elementoComplejo2 

elementoComplejo3


Ejemplo de mensaje XML: 


<nombreElementoelementoAtributo="1">  

<elementoSimple>Ejemplo1</elementoSimple> 

<elementoSimple>Ejemplo2</elementoSimple>  

</nombreElemento> 

 

La definición de los mensajes se ha realizado utilizando la definición estándar de XSD oficial del W3C. 

 

Puede consultar las definiciones oficiales en: 

 

XML Schema: http://www.w3.org/XML/Schema

W3C Recommendation: http://www.w3.org/TR/xmlschema-1/ 

 

También puede resultar de ayuda la página de W3Schoolsque contiene muchos ejemplos. 

 

Columna Elemento: nombre del campo XML o nombre del grupo. Los elementos grupo y elementos  complejos estarán marcados en cursiva. 

 

Columna O: indica si el elemento es obligatorio (S) o no (N). El valor CHOICE (C) indica elección. Es decir  puede ser obligatorio o no en función de otro elemento. En estos casos se añadirá un comentario  adicional en el apartado Comentarios

 

Columna Tipo de datos: indica el tipo del elemento. 

  • Puede ser un tipo primitivo: String, Boolean, Integer, etc. 
  • Una enumeración: lista de valores predefinida en un dominio cerrado. Por ejemplo tiperr   únicamente admite como valores válidos E, W o I. 

 

Un elemento grupo formado por varios elementos simples o complejos. Por ejemplo, todos los  mensajes de respuesta pueden contener ciertos elementos con la información del error en caso de que se  produjera (tiperr, coderr, txterr). Para no replicar estos campos en todos los mensajes se ha creado el  grupo error que contiene la definición de estos campos.

 

Nota adicional acerca de los grupos 

El elemento group usado en la definición de XSD NO se ve reflejado en los XML.Se usa para tener una  estructura más fácil de gestionar en la definición de las XSD. 

 

Por ejemplo, en el caso de un mensaje SesionAbrirRespuesta que hubiera dado error, el mensaje XML devuelto  por el servidor tendría la siguiente estructura: 

 

<SesionAbrirRespuesta> 

<tiperr>E</tiperr> 

<coderr>SAN-121</coderr> 

<txterr>Usuario incorrecto</coderr> 

</SesionAbrirRespuesta> 

 

Puede consultar más información acerca del elemento group aquí. 

  • Elemento complejo: elemento definido completamente por separado. 
  • Elemento lista []: se indicará con corchetes cuando el elemento pueda estar repetido. 

 

Columna Restricciones: son restricciones de aplicación del elemento. Diferentes opciones son: longitud  máxima y/o mínima, valores de un dominio cerrado, expresiones regulares, etc. Para el caso de elementos  complejos se detallará un enlace “Ver definición” que redirigirá a la información del tipo en cuestión. 

 

De forma general los valores de longitud máxima y/o mínima, y de valores máximo y/o mínimo tendrán el  siguiente significado: 

 

Para los valores String siempre serán valores inclusivos,es decir, si la restricción es de máximo 100. El  valor de 100 está incluido. 

 

Para los valores numéricos como Integer o Short serán valores inclusivos para los mínimos y exclusivos para los máximos.Por ejemplo, una restricción de valor mínimo 0 y valor máximo 1000 significa que los valores posibles son de 0 a 999. Si tiene dudas acerca del uso y definición de restricciones puede  consultarlo aquí. 

 

Columna Descripción: breve descripción del elemento así como un listado de posibles valores que puede  tener. Igual que en la columna restricciones, para el caso de elementos complejos se detallará un enlace  “Ver definición” que redirigirá a la información del tipo en cuestión. 

 

Utilizado en: lista con el nombre de los elementos complejos que utilizan el elemento actual. Cada uno de los nombres será un enlace a la definición del tipo en cuestión.

 


Elementos comunes en los mensajes

 

Existen ciertos elementos y grupos de elementos XML que son usados en varios mensajes.

 

Grupo Error

 

Todos los mensajes de respuesta pueden contener información acerca de errores que se hayan podido  producir. 

 

Error (Grupo): grupo de elementos con los datos de un error. 

 

Elemento

O

Tipo de datos

Restricciones

Descripción

tiperr

Enumeration 

E

W

I

Tipo de error. 

E: error. Parará el sistema.

W: alerta. Parará el sistema.

I: información. No parará el sistema.

coderr

String 

Longitud máxima: 10

Código de error

txterr

String 

Longitud máxima: 1000

Texto de error

 

Utilizado en:

 

Ejemplo de respuesta de error en un mensaje de abrir sesión: 

 

<SesionAbrirRespuesta> 

<tiperr>E</tiperr>  

<coderr>SAN-121</coderr>  

<txterr>Usuario incorrecto</txterr>  

</SesionAbrirRespuesta> 

 

Dominio check


Se han definido una serie de campos en distintos elementos que solo pueden tener valores de SI o NO. Para estos campos se ha creado un dominio cerrado con los valores S y N. 

De forma general son todos los campos que empiezan con las letras CHK.