Impossible d'ajouter une ligne dans un fichier xml
Bonsoir,
J'ai un fichier XML suivant:
Code:
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:
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:
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:
Citation:
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:
<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.