Bonjour à tous,
Dans le cadre d'un projet d'interrop, j'ai besoin d'extraire des données d'un annuaire LDAP depuis un webservice. Si l'extraction des données LDAP ne me pose aucun problème, je me pose énormément de question sur le format du flux XML que le webservice doit renvoyer.
Par exemple, imaginons un webservice qui renvoie les informations d'un agent :
Comme les données brut renvoyés par LDAP ne sont pas très exploitable, ma première idée fut de construire à la mimine un flux XML identique à celui de ci-dessus en utilisant la classe System.XML.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <agent> <matricule>1</matricule> <nom>Toto</nom> <telephone>0600</telephone> </agent>
Facile ! Mais un collègue me dit: "il est où le schéma xsd ?"
Pas faux, alors je pars sur une deuxième idée. Je créé un datatable avec les colonnes qui vont bien, j'insère les données dans la table, je mets la table dans un dataset et je renvoie le dataset !
Oh miracle ! J'obtiens un magnifique flux qui contient à la fois la description du flux (le schema avec les balises xs:...) et les données derrière.
Seulement je suis confronté à un problème, en effet dans les annuaires LDAP, certains champs peuvent être multivalué, ainsi je pourrais obtenir les données suivantes pour un agent :
Ce type d'informations n'est donc plus compatible avec la logique datatable et dataset. (à moins de passer par plusieurs tables et faire tout un bazar relationnel)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <agent> <matricule>1</matricule> <nom>Toto</nom> <telephone>0600</telephone> <telephone>0602</telephone> </agent>
La dernière idée en date donc, c'est de construire à la fois le schéma à la main et faire suivre cela par les données.
Malheuresement si d'un côté j'ai mon objet XMLSchema avec mon schema et mon objet XMLDocument avec mes données, je n'arrive pas à joindre les 2 bouts et à tout renvoyer.
De plus je ne suis même pas sur de la validité de flux une fois que j'aurais joints les 2 bouts.
J'en viens même à me demander si cela est vraiment nécessaire que je renvois un schéma dans mon flux ?
Voilà beaucoup de blabla pour un problème qui n'en est peut-être pas un. Je fais donc appel aux experts du C# et du XML pour avoir leur avis sur la question.
Merci ![/code]
Partager