Inicio > SOA / BPM / WebCenter > typeswitch: XQuery con elementos de tipo choice

typeswitch: XQuery con elementos de tipo choice

El desarrollo de servicios en OSB (Oracle Service Bus) suele conllevar la necesidad de transformar datos mediante XQuery. En este post se presenta un caso concreto, con el fin de agilizar dichos desarrollos. 

La función typeswitch nos permite tratar elementos XML de tipo choice. Estos elementos proporcionan un conjunto limitado de posibles elementos de nivel inferior al consumidor de dicho contrato.

En el momento de acceder al contenido del documento generado, podemos hacer uso de esta función XQuery. Se define el conjunto de posibles elementos que puede contener y el valor a devolver en cada caso:

  • Definición:
 <xsd:complexType name="telefono">
 <xsd:choice>
 <xsd:element name="fijo" type="xsd:string"/>
 <xsd:element name="movil" type="xsd:string"/>
 <xsd:element name="extension" type="xsd:string"/>
 </xsd:choice>
 </xsd:complexType>
  • Función XQuery:
...
typeswitch ($telefono/( ns0:fijo | ns0:movil | ns0:extension )) 
 case $fijo as element(ns0:fijo)
 return
   concat("El teléfono fijo es: ",$fijo)
 case $movil as element(ns0:movil)
 return
   concat("El teléfono movil es: ",$movil)
 case $ext as element(ns0:extension)
 return
   concat("La extensión telefónica es: ",$ext)
 default
 return ()
...

Incluido dentro de un bucle, nos permitiría obtener todos los datos de contacto de un usuario con repeticiones de cada uno de los elementos, por poner un ejemplo.

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: