Necesitamos una fuente de página XML ($XML1) para almacenar y estructurar los datos necesarios para el diseño. En este caso utilizaremos el archivo XML CityTimes.xml (consulte el fragmento de código que aparece más abajo). Estos son los elementos del archivo XML:
•El elemento UTC se actualiza con la hora UTC por medio de una solicitud SOAP cuando el usuario pulsa un botón. Este nodo sirve para mostrar la hora UTC al usuario.
•El elemento RefreshTime cuya función es almacenar el tiempo que transcurre (en segundos) entre las actualizaciones automáticas de la página. El usuario puede seleccionar el valor de este nodo.
•El elemento SelectCity contiene los datos (Name, TimeZone y Time) de la ciudad que el usuario selecciona. Cuando el usuario selecciona una ciudad de la lista desplegable de un cuadro combinado, el elemento secundario Name secundario del elemento SelectCity se actualiza con el nombre de la ciudad seleccionada. El elemento SelectCity/TimeZone se actualiza con los datos de la base de datos Cities cuando se hace la selección en el cuadro combinado y el elemento SelectCity/TimeZone se actualiza con la respuesta del servicio web a la solicitud SOAP que se envía cuando el usuario selecciona una ciudad.
•El elemento Cities es una base de datos que contiene los datos (Name, TimeZone y Time) de las ciudades seleccionadas (si quiere, puede añadir más ciudades). El servicio web al que accederemos necesita la zona horaria de la ciudad para calcular y devolver la hora actual de la ciudad seleccionada. Por tanto, la base de datos debe contener los datos de la zona horaria. El elemento secundario Time de estos elementos City sirven para almacenar la hora actual de cada ciudad, que se obtiene del servicio web en respuesta a la solicitud SOAP. Al igual que en el caso de la hora UTC, la solicitud SOAP se envía cuando el usuario pulsa un botón (o selecciona una ciudad en el cuadro combinado).
<CityTime xmlns="http://www.Nanonull.com/TimeService/">
<UTC>12:00 AM</UTC>
<RefreshTime>60</RefreshTime>
<SelectCity>
<City>
<Name>UTC Time</Name>
<TimeZone>GMT</TimeZone>
<Time>12:00 AM</Time>
</City>
</SelectCity>
<Cities>
<City>
<Name>Beijing</Name>
<TimeZone>UTC+8</TimeZone>
<Time>12:00 AM</Time>
</City>
...
</Cities>
A las fuentes de página del diseño se añadió una fuente de página XML ($XML1) que utiliza CityTimes.xml como fuente de página. Así se añadió la fuente de página:
1.Haga clic en el icono Agregar fuente de página del panel Fuentes de página (imagen siguiente). Seleccione la opción Estructura XML, HTML o JSON nueva importada de un archivo. En la siguiente pantalla haga clic en Finalizar para confirmar la configuración de la fuente de página (sin cambiar las opciones predeterminadas).
2.Aparece el cuadro de diálogo "Abrir". Busque el archivo CityTimes.xml (ubicación del archivo) y haga clic en Abrir. A continuación se crea la estructura $XML1. Tiene el archivo CityTimes.xml como archivo predeterminado y su estructura XML es la del archivo predeterminado.
Los nodos de la respuesta SOAP de este servicio web en particular no tienen prefijo y pertenecen al espacio de nombres http://www.Nanonull.com/TimeService/. Por tanto, una de las formas de apuntar correctamente a los nodos de la respuesta SOAP que se introducen en las expresiones XPath del diseño es definir este espacio de nombres como espacio de nombres predeterminado de XPath (imagen siguiente).
Al definir este espacio de nombres como espacio de nombres predeterminado de XPath, se entenderá que todos los nodos sin prefijo de las expresiones XPath del diseño están en este espacio de nombres. Sin embargo, si los nodos de la estructura XML tampoco tienen prefijo (como en el caso de nuestra estructura XML) y estos nodos se introducen sin prefijos en las expresiones XPath, entonces en las expresiones XPath se entenderá también que estos nodos están en el espacio de nombres predeterminado de XPath http://www.Nanonull.com/TimeService/.
Por este motivo también asignamos el espacio de nombres http://www.Nanonull.com/TimeService/ a los nodos de la estructura XML. En el fragmento de código XML que aparece más arriba observará que el elemento raíz del documento se asignó al espacio de nombres: <CityTime xmlns="http://www.Nanonull.com/TimeService/">
•Como este espacio de nombres está dentro del ámbito en todo el documento XML y no se reemplaza mediante ninguna asignación de espacio de nombres en elementos descendientes, el espacio de nombres se aplica en todo el documento.
•Como la declaración de espacio de nombres del documento no tiene prefijo, este espacio de nombres será el predeterminado del documento XML. El resultado es que los nodos con nombres locales sin prefijo están en este espacio de nombres.
Nota: | si su documento XML está en un espacio de nombres distinto al espacio de nombres de los nodos de la respuesta SOAP, entonces se recomienda declarar el espacio de nombres con un prefijo en el documento XML. Después, en el diseño, asegúrese de introducir correctamente este mismo valor prefijo:espacioNombres en la colección de espacios de nombres del diseño. En las expresiones XPath del diseño debería utilizar el prefijo declarado a la hora de hacer referencia a los nodos de la estructura XML. Otra opción es apuntar a un nodo con el prefijo asterisco (*:NombreDelNodo) en las expresiones XPath. Esto encontrará todos los nodos que tengan el nombre local NombreDelNodo, independientemente del espacio de nombres en el que esté. |