Mon premier pitch en D1A en Mars 1994
Mot de passe :
Accueil | 
Résultats du mot clé XML
20/04/2007
Tutoriel : Construire une structure XML "complexe" gràce à la sérialisation

Version PDF à télécharger
Code Source

Droit de diffusion:
L'ensemble ou partie de ce document ainsi que le code mis à disposition, ne peut être diffusé sur d'autres sites Web sans l'autorisation au préalable de son créateur.

Avant Propos :
Venant du monde de l’EDI à l’origine, j’ai souvent été surpris par les structures XML très linéaires. Entête, détails, adresses se suivent souvent sans respecter une arborescence logique. En fait, dans une commande, il ne peut y avoir de détail s’il n’y a pas d’entête.
J’ai donc entrepris de construire un XML WebService qui nécessite une structure complexe, ou dirons nous plutôt avancée :

  • Un premier niveau, l’interchange, qui va donner les informations d’authentification ;
  • Un second, qui est fils du premier, qui correspond à l’entête de ma commande ;
  • Un troisième qui est fils de l’entête avec les adresses de livraison et de facturation
  • Un quatrième, toujours fils de l’entête avec le détail de mes lignes de commande
  • Un dernier, fils de l’interchange qui correspond au pied du document.

Nous obtenons donc une structure de ce type

Nous allons donc voir dans ce tutoriel :
  • La création des structures
  • La sérialisation des celles-ci
  • L’invocation de WebServices, parce que c’est toujours bon de le rappeler et cela ne fait pas de mal !
  • La sortie du flux XML vers le navigateur.
N’hésitez pas à télécharger et à utiliser les sources, elles sont faites pour cela.

Sommaire:

1. Les structures
  1.1. Les informations communes
  1.2. La structure de base, wsInterchange
  1.3. La structure de l’entête
  1.4. La collection de détails
2. Le XML WebService
3. L’invocation du XML
4. La sortie XML vers le flux http
5. En Savoir plus

1. Les structures

1.1. Les informations communes

Si vous souhaitez procéder à une sérialisation « avancée » de vos structures, il est impératif d’ajouter l’assembly System.Xml.Serialization.

Votre classe doit également avoir comme attribut personnalisé [Serializable].

Enfin, si vous souhaitez que les membres de votre structure apparaissent comme attribut d’un élément XML ajoutez l’attribut [XmlAttribute()].

1.2. La structure de base, wsInterchange
C’est la structure principale Elle est bien entendu [Serializable]. Notez qu’elle inclut l’entête et le pied. Le détail et les adresses sont inclus dans l’entête. Dans l’exemple, Login, Pwd et Test sont des données qui apparaîtront dans l’attribut de mon élément WsInterchange



1.3. La structure de l’entête


Mon entête comporte donc la structure pour l’adresse de livraison et de facturation ainsi que 2 éléments pour le numéro et la date de commande. Le numéro de commande est passé en XML en attribut. L’entête comporte aussi de détail. La structure de détails est incorporée dans l’élément « Details » et l’ensemble des valeurs (car c’est une collection) sera incorporé dans des éléments « Detail »


1.4. La collection de détails
N’oubliez pas d’insérer l’assembly System.Collections car elle doit absolument dériver de CollectionBase. Ajoutez également la méthode Add, qui dérive de ICollection. Construisez et récupérez la structure de cette collection. struct_detail comprend la référence, les quantités, le conditionnement et la description.

2. Le XML WebService

La rien de plus simple, un XML WebService commande.asmx est créé et attend la structure « avancée » wsInterchange. Dans un premier temps, il ne fait pas de traitement mais renvoie le numéro de commande. A la portée de tous.




3. L’invocation du XML



La page AppelWS.aspx invoque le WebService lors du clic sur le bouton. Il renvoie son retour dans un label :



Le contenu de la commande est générée par une méthode externe, ConstruitCommande() :



4. La sortie XML vers le flux http



La page AppelXml renvoie la sérialisation non plus vers un WebService mais vers un flux http.



Toujours aussi déconcertant, 4 lignes de codes et ma structure se sérialise et est envoyée sur mon navigateur Internet.

5. En Savoir plus

Mots clés associés : Microsoft c# Tutoriel XML ASP.Net  | Lien permanent | Laissez le premier votre commentaire
Publiée dans la zone Tutoriels .Net
Le profil Facebook de Laurent GEFFROY
Rechercher sur ce site


 
fermer la fenetre