Bonjour à tous

je désire écrire en XML dans un fichier. Jusque là, tout va bien
Par contre, c'est au niveau de la mise en page que je sèche un peu...
Voici un exemple de mise en page de ce que je voudrais réaliser :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<root>
  <element><a/></element>
  <element><a/></element>
</root>
donc pour cela, j'écris le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
XmlWriterSettings^ settings = gcnew XmlWriterSettings();
settings->CloseOutput = true;
settings->Indent = true;
settings->IndentChars = "  "; //default value
settings->NewLineChars = "\r\n"; //default value
settings->NewLineOnAttributes = false; //default value
settings->OmitXmlDeclaration = true;
 
XmlWriter^ writer = XmlWriter::Create("test.xml", settings);
delete settings;
writer->WriteStartDocument();
writer->WriteStartElement(L"root");
 
for (i=0 ; i<2 ; i++) {
	writer->WriteStartElement(L"element");
 
	// creation d'un XmlWriter qui utiliser 'writer' comme 
	// writer sous-jacent avec les settings par défaut, donc 
	// la propriété 'indent' à false
	XmlWriter^ xwItem = XmlWriter::Create(writer);
 
	xwItem->WriteStartElement(L"a");
	xwItem->WriteEndElement(); // a
	xwItem->WriteEndElement(); // element
}
 
writer->WriteEndElement(); // root
writer->WriteEndDocument();
delete writer;
et je tombe sur ce résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<root>
  <element>
    <a />
  </element>
  <element>
    <a />
  </element>
</root>
J'ai essayé en explicitant la création d'un nouveau XmlWriterSettings (avec l'attribut indent à false bien sûr ) pour mon second XmlWriter, mais le résultat est le même.

quelqu'un aurait'il déjà rencontré une histoire similaire (ou tout simplement l'a fait!!!).
merci par avance pour vos avis.