La source de page XML

www.altova.com Agrandir/Réduire tout Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Tutoriels > Requêtes SOAP >

La source de page XML

Il nous faut une source de page XML ($XML1) pour maintenir et structurer les données nécessaires pour le design. Nous allons utiliser le fichier XML CityTimes.xml qui est structuré dans les parties suivantes (voir liste ci-dessous) :

 

L'élément UTC qui est mis à jour avec l'heure UTC par le biais d'une requête SOAP lorsque l'utilisateur appuie sur une touche (voir liste ci-dessous). Ce nœud est utilisé pour afficher l'heure UTC pour l'utilisateur.
L'élément RefreshTime (voir liste ci-dessous), qui a été conçu pour conserver le temps en secondes entre les actualisations automatiques de la page. L'utilisateur peut sélectionner la valeur de ce nœud.
L'élément SelectCity qui contient les détails (Name, TimeZone et Time) de la ville que l'utilisateur sélectionne (voir liste ci-dessous). Lorsque l'utilisateur choisit une ville depuis la liste déroulante de la liste de choix, l'élément enfant Name de l'élément SelectCity est mis à jour avec le nom de la ville choisie. L'élément SelectCity/TimeZone est mis à jour depuis la base de données Cities une fois que la sélection de la liste de choix a été effectuée, et l'élément SelectCity/TimeZone est mis à jour par la réponse du service web à la requête SOAP qui a été envoyée lorsque l'utilisateur sélectionne une ville.
L'élément Cities est une base de données qui contient les détails (Name, TimeZone, et Time) des villes sélectionnées (voir liste ci-dessous). (Vous pouvez ajouter plus de villes si vous le souhaitez.) Le service web auquel nous allons accéder nécessite un fuseau horaire de ville pour pouvoir calculer et retourner l'heure actuelle dans la ville choisie. C'est pourquoi la base de données doit contenir les informations des fuseaux horaires. L'élément enfant Time de ces éléments City sont utilisés pour maintenir l'heure actuelle d'une ville qui est obtenue depuis le service web en réponse à une requête SOAP. En ce qui concerne l'heure UTC ci-dessus, la requête SOAP est envoyée lorsque l'utilisateur appuie sur un bouton (ou sélectionne une ville dans la liste de choix).

 

Version courte de la source de page de page XML CityTimes.xml, montrant la structure du document

 

<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>

 

 

 

Click to expand/collapseListe complète de la source de page de page XML, CityTimes.xml

Situé dans le dossier MobileTogether du dossier (Mes) Documents : MobileTogetherDesignerExamples\Tutorials\AltovaProducts.xml.

 

<?xml version="1.0" encoding="UTF-8"?>

<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>

         <City>

                 <Name>Boston</Name>

                 <TimeZone>UTC-6</TimeZone>

                 <Time>12:00 AM</Time>

         </City>

         <City>

                 <Name>London</Name>

                 <TimeZone>GMT</TimeZone>

                 <Time>12:00 AM</Time>

         </City>

         <City>

                 <Name>Los Angeles</Name>

                 <TimeZone>UTC-8</TimeZone>

                 <Time>12:00 AM</Time>

         </City>

         <City>

                 <Name>Madrid</Name>

                 <TimeZone>UTC+1</TimeZone>

                 <Time>12:00 AM</Time>

         </City>

         <City>

                 <Name>Moscow</Name>

                 <TimeZone>UTC+3</TimeZone>

                 <Time>12:00 AM</Time>

         </City>

         <City>

                 <Name>Paris</Name>

                 <TimeZone>UTC+1</TimeZone>

                 <Time>12:00 AM</Time>

         </City>

         <City>

                 <Name>Sydney</Name>

                 <TimeZone>UTC+11</TimeZone>

                 <Time>12:00 AM</Time>

         </City>

         <City>

                 <Name>Tokyo</Name>

                 <TimeZone>UTC+9</TimeZone>

                 <Time>12:00 AM</Time>

         </City>

         <City>

                 <Name>Vienna</Name>

                 <TimeZone>UTC+1</TimeZone>

                 <Time>12:00 AM</Time>

         </City>

 </Cities>

</CityTime>

 

 

Ajouter la source de page XML

Une source de page XML ($XML1) qui utilise CityTimes.xml en tant que sa source de page a été ajoutée aux sources de page du design. Les sources de la page sont ajoutées comme suit :

 

1.Cliquer sur l'icône Ajouter source de page dans le Volet Source de page (voir capture d'écran). Choisir Nouvelle structure XML, HTML ou JSON importée depuis le fichier. Confirmer les paramètres de source de page dans l'écran suivant (sans changer les réglages par défaut) en cliquant sur Terminer.

MTDSOAPTutPageSources02XML

2.Un dialogue Ouvrir apparaît. Chercher le fichier CityTimes.xml (voir emplacement) et cliquer sur Ouvrir. L'arborescence $XML1 est créée. Le fichier CityTimes.xml y est défini en tant que son fichier par défaut et son arborescence XML a la structure du fichier par défaut.

 

Espaces de noms des nœuds dans la réponse SOAP et l'arborescence XML

Les nœuds dans la réponse SOAP provenant de ce service web particulier ne possèdent pas de préfixe et appartiennent à l'espace de noms : http://www.Nanonull.com/TimeService/. Ainsi, une des manières de cibler correctement les nœuds de réponse SOAP qui sont saisis dans les expressions XPath du design est de configurer l'espace de noms XPath par défaut pour cet espace de noms (capture d'écran ci-dessous).

MTDSOAPTutPageSources03NS

La configuration de cet espace de noms en tant qu'espace de noms XPath par défaut signifie que tous les nœuds sans préfixe se trouvant dans les expressions XPath du design seront considérés se trouver dans cet espace de noms. Donc si les nœuds de l'arborescence XML n'ont pas de préfixe (comme cela est le cas avec notre arborescence XML) et que ces nœuds d'arborescence sont saisis sans préfixes dans des expressions XPath, alors, dans les expressions XPath, ces nœuds seront aussi considérés comme étant dans l'espace de noms XPath par défaut : http://www.Nanonull.com/TimeService/.

 

C'est la raison pour laquelle nous attribuons aussi l'espace de noms http://www.Nanonull.com/TimeService/ aux nœuds XML. Si vous consultez la liste XML ci-dessus, vous constaterez que l'élément racine du document a été attribué à l'espace de noms :

 

<CityTime xmlns="http://www.Nanonull.com/TimeService/">

 

Puisque cet espace de noms est dans la portée sur tout le document XML et qu'il n'est pas remplacé par un mappage d'espace de noms quelconque sur un élément descendant, l'espace de noms s'applique sur tout le document.
Puisque la déclaration de l'espace de noms du document n'a pas de préfixe, cet espace de noms sera l'espace de noms par défaut du document XML. Par conséquence, les nœuds contenant des noms locaux sans préfixe se trouvent dans cet espace de noms.

 

Note :Si votre document XML se trouve dans un autre espace de noms que celui des nœuds de réponse SOAP, il vaut mieux déclarer, dans le document XML, l'espace de noms du document avec un préfixe. Ensuite, dans le design, veuillez vous assurer que cette même valeur prefix:namespace a été saisie correctement dans la collection des espaces de noms du design. Dans les expressions XPath du design, vous devriez utiliser le préfixe déclaré lors du référencement des nœuds d'arborescence XML. En alternative, dans les expressions XPath, vous pourriez adresser un nœud avec le préfixe étoile, comme ceci par ex. *:NodeName. Cela correspondra à tous les nœuds possédant le nom local NodeName, quel que soit l'espace de noms dans lequel le nœud se trouve.

 


© 2019 Altova GmbH