Bonjour,

J'ai un projet dans lequel je charge des requêtes XML dans un objet XElement que je traite par la suite. J'ai un fonctionnement différent selon l'origine de mes requête.

Voici les lignes de code concernées:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
            // First, make a work copy of incoming message and load it in XDocument
            MessageBuffer messageBuffer = incomingMessage.CreateBufferedCopy(int.MaxValue);
            Message msgToRead = messageBuffer.CreateMessage();
            XmlDictionaryReader xmlReader = msgToRead.GetReaderAtBodyContents();
 
            messageContent = XElement.Load(xdr.ReadSubtree());
....
....
 
                //test on firstNode element
                XElement queryNode = (XElement)documentToValidate.FirstNode.NextNode;
                nameSpace = queryNode.FirstAttribute.Value.Split(':').ElementAt(0);
Lorsque ma requête provient de SOAPUI (logiciel utilisé pour passer des requêtes à mon projet) j'obtient un messageContent présentant une identation avec des tabulations (copié/collé du contenu de messageContent dans Notepad):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<wfs:GetFeature cursor="1" traverseXlinkDepth="0" presentation="full" outputFormat="text/xml; subtype=gml/3.1.1" service="WFS" resultType="results" maxFeatures="300" version="1.1.0" xmlns:wfs="" xmlns:ogc="" xmlns:xxx="" xmlns:gml="">
	<wfs:Query typeName="xxx">
		<ogc:Filter>
...
		</ogc:Filter>
	</wfs:Query>
</wfs:GetFeature>
et lorsque je manipule l'objet XELement le FirstNode est vide et FirstNode.NextNode contient le contenu de la balise Query.


Lorsque j'appelle mon service via un autre service mettant en forme ces requête (je ne passe plus par SOAPUI) le messageCOntent que j'obtient change un peu et présente une indentation avec des espaces et plus les tabulations.

Et lorsque je charge/manipule l'objet XElement le FirstNode correspond au centenu de la balise Query et FirstNode.NextNode est null.

Quelqu'un aurait-il une idée de ce qui provoque cette différence de traitement? quelle serait la solution pour avoir un fonctionnement uniforme?

J'ai essayé en utilisant les propriétés ignoreWhiteSpace de xmlReader mais ce la ne semble pas régler mon problèem.

Cordialement,
Christophe.