*/ ?>
Zoom sur les listes XML

Les listes sont une composante essentielle de l'organisation d'une application mobile. Nous avons vu plus haut comment créer en ligne une liste et la mettre à jour en temps réel depuis le portail AppMobile. Cette méthode vous permet de tenir facilement à jour une liste simple.

Mais si vous avez des informations issues d'une base de données, vous préférerez exporter ponctuellement ces informations de votre base vers un fichier, mettre ce fichier en ligne et donner à AppMobile l'URL de ce fichier. Vous pouvez vous appuyer sur notre format XML pour créer ponctuellement un fichier statique.

Mieux, si vos données sont issue d'une base de donnée qui est elle-même en ligne (ce qui est le cas si vous avez un site web), écrivez un simple script sur votre serveur, qui crée le XML en temps réel à partir des données à jour dans votre base.

Dans les deux cas, commençons par une description du format XML AppMobile.

Format général

Un premier exemple de fichier XML: il s'agit d'une liste de trois items.

<?xml version="1.0" encoding="UTF-8"?>
<items version="1.0" type="1" reload="1" locate="1">
	<!-- items
		type : 1 = standard list
		reload : 1 = Reload each show, 0 = No reloading  
		locate : 1 = User can locate the list, 0 = User can't locate the list -->
	<item type="1">
		<!-- item
			type : 1 = item with image, 2 = item without image -->
		<img>http://image1.notulus.com/photos/article_news/Concorde2014_100x75.jpg</img>
			<!-- Image should be 80x60px for correct display -->
		<txt1>Concorde</txt1>
		<txt2>Nouvel EP</txt2>
		<txt3>Musique</txt3>
		<link type="1" url="http://www.notulus.com/iphoneV2/iphone_affiche_news.php?id=3917" title="News - Musique"/>
			<!-- link type : 1 = url to html content, 4 = url to xml sub-list -->
	</item>
	<item type="1">
		 <img>http://image1.notulus.com/photos/article_news/FestivalGerardmer2014_100x75.jpg</img>
		 <txt1>Festival de Gérardmer</txt1>
		 <txt2>Palmarès</txt2>
		 <txt3>Cinéma</txt3>
		 <link type="1" url="http://www.notulus.com/iphoneV2/iphone_affiche_news.php?id=3914" title="News - Cinéma"/>
	</item>
	<item type="2">
		<img/><!-- no image for item type = 2 -->
		<txt1>Nos coups de coeur à l'affiche</txt1>
		<txt2>Cinéma</txt2>
		<txt3>(sous-liste)</txt3>
		<link type="4" url="http://fpierrat.fr/xml/exemple/sous-liste-exemple.xml" title="A l'affiche"/>
	</item>
</items>

La structure du fichier est simple: la liste est représentée par un élément <items>, qui contient un noeud <item> pour chaque entrée de la liste.

Chaque item contient une vignette (<img>), une à trois lignes de texte (<txt1>, <txt2> et <txt3>), et un lien (<link>) qui définit l'action à mener quand l'utilisateur clique sur l'item dans la liste.

Le lien peut pointer vers une page html ou vers une sous-liste xml (cf. attribut "type" de <link>).

L'image est facultative (cf. attribut "type" de <item>).

L'attribut "type" de <item> permet également de mettre en oeuvre des items avec des fontions spécifiques, comme par exemple l'ajout d'éléments dans un panier:     

L'élément <items>

Contenu

Une liste d'éléments <item> (version 1.0) ou d'éléments <section> (version 1.1).

l'attribut "version" :

l'attribut "type" :

l'attribut "reload" :

Pour éviter des temps de chargement inutiles, laissez la valeur de "reload" à zéro pour les listes statiques, ou les listes dynamiques portant sur des données dont les mises à jour sont peu fréquentes.
Fixez la valeur de "reload" à 1 uniquement pour les listes dynamiques fréquemment mises à jour, ou pour les listes dont le contenu peut être modifié par les intéractions de l'utilisateur (un panier doit toujours être réactualisé par exemple).

l'attribut "locate" :

L'élément <section>

L'élément <section> n'est défini que dans la version 1.1 (attribut version="1.1" de <items>).
Il est obligatoire dans cette version: un <item> ne peut être défini directement dans <items>, il doit être inclus dans une <section>.
Il permet de regrouper les éléments <item>: regroupement d'articles par catégories, de news par rubriques, etc....

Contenu

Une liste d'éléments <item>.

l'attribut "title" :

Il définit le titre de la rubrique qui sera affiché par l'application.

L'élément <item>

Contenu

L'éléments <item> contient les éléments suivants :

l'attribut "type" :

L'élément <link>

Contenu

L'éléments <link> est un élément vide.

l'attribut "type" :

l'attribut "url" :

L'attribut "url" contient l'url appelée lorsque l'utilisateur sélectionne cet item dans la liste.

l'attribut "title" :

L'attribut "title" contient le libellé qui apparaîtra dans la barre de titre de la page appelée (page HTML ou liste XML).