Bonsoir,

J'ai un fichier XML suivant:

Code XML : 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
<?xml version="1.0" encoding="utf-8" ?>
<todo>
  <item id="0" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="1" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="2" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="3" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="4" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="5" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="6" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="7" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="8" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="9" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="10" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="11" project="" area="" initiatedDate="" dueDate=""></item>
  <item id="12" project="" area="" initiatedDate="" dueDate=""></item>
</todo>

Ainsi que le fichier XSD:

Code XML : 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
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="todo">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="item">
          <xs:complexType>
            <xs:attribute name="id" type="xs:int" use="optional" />
            <xs:attribute name="project" type="xs:string" use="optional" />
            <xs:attribute name="area" type="xs:string" use="optional" />
            <xs:attribute name="initiatedDate" type="xs:dateTime" use="optional" />
            <xs:attribute name="dueDate" type="xs:dateTime" use="optional" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

J'utilise la fonction suivante pour ajouter une ligne dans mon fichier xml:

Code C# : 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
public static void AddToDoItem(string XMLDataFile, string text, ComboBox project, ComboBox area, DateTime initiatedDate, DateTime dueDate)
        {
            XDocument xmlFile = XDocument.Load(@"./../../Data/" + XMLDataFile);
 
            XElement item = new XElement("item",
                new XAttribute(Program.toDosFields[0].ToString(), GetXMLLastID(xmlFile) + 1),
                new XAttribute(Program.toDosFields[1].ToString(), project.SelectedValue),
                new XAttribute(Program.toDosFields[2].ToString(), area.SelectedValue),
                new XAttribute(Program.toDosFields[3].ToString(), initiatedDate),
                new XAttribute(Program.toDosFields[4].ToString(), dueDate));
 
            item.SetValue(text);
            MessageBox.Show(item.ToString());
 
            xmlFile.Add(item);
        }

Le seul problème c'est que lorsque je lance mon programme, il me dit l'erreur suivante:

This operation ould create an incorrectly structured document.
Pourtant lorsque je regarde ce que je genère mon item, j'ai le code XML suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<item id="13" project="pif" area="AM" initiatedDate="2010-10-31T00:00:00+02:00" dueDate="2010-11-01T00:00:00+01:00">test</item>
ce qui correspond bien à ce qu'il y a dans mon fichier xml :s

Est-ce que quelqu'un aurait une idée de comment insérer une ligne? Est-ce que cela doit être fait d'une autre manière?

Merci bien pour votre aide et bonne soirée

L.