Ошибка в XML-документе (2,13)
Это ASCII-данные XML-документа, возвращенного вызовом EWS и отформатированного с использованием (new ASCIIEncoding()).GetString(XmlData)
:
<?xml version="1.0"?>
<categories default="Alltag" lastSavedSession="3" lastSavedTime="2013-11-21T13:15:18.2751355Z" xmlns="CategoryList.xsd">
<category name="Lila Kategorie" color="8" keyboardShortcut="0" usageCount="2" lastTimeUsedNotes="1601-01-01T00:00:00Z" lastTimeUsedJournal="1601-01-01T00:00:00Z" lastTimeUsedContacts="1601-01-01T00:00:00Z" lastTimeUsedTasks="1601-01-01T00:00:00Z" lastTimeUsedCalendar="1601-01-01T00:00:00Z" lastTimeUsedMail="1601-01-01T00:00:00Z" lastTimeUsed="2013-11-04T16:54:56.824Z" lastSessionUsed="0" guid="{56d27797-6a5f-4e0a-9e68-54e386b68e3a}" renameOnFirstUse="1" />
<category name="Gelbe Kategorie" color="3" keyboardShortcut="0" usageCount="2" lastTimeUsedNotes="1601-01-01T00:00:00Z" lastTimeUsedJournal="1601-01-01T00:00:00Z" lastTimeUsedContacts="1601-01-01T00:00:00Z" lastTimeUsedTasks="1601-01-01T00:00:00Z" lastTimeUsedCalendar="1601-01-01T00:00:00Z" lastTimeUsedMail="1601-01-01T00:00:00Z" lastTimeUsed="2013-11-04T16:54:56.824Z" lastSessionUsed="0" guid="{19008ab2-00a6-4149-a531-fd58edb3fc8c}" renameOnFirstUse="1" />
<category name="Blaue Kategorie" color="7" keyboardShortcut="0" usageCount="6" lastTimeUsedNotes="1601-01-01T00:00:00Z" lastTimeUsedJournal="1601-01-01T00:00:00Z" lastTimeUsedContacts="1601-01-01T00:00:00Z" lastTimeUsedTasks="1601-01-01T00:00:00Z" lastTimeUsedCalendar="2013-11-04T16:58:58.111Z" lastTimeUsedMail="1601-01-01T00:00:00Z" lastTimeUsed="2013-11-04T16:58:58.111Z" lastSessionUsed="1" guid="{94281f1d-827d-43f5-a4f6-3840e9378932}" renameOnFirstUse="0" />
<category name="Grüne Kategorie" color="4" keyboardShortcut="0" usageCount="2" lastTimeUsedNotes="1601-01-01T00:00:00Z" lastTimeUsedJournal="1601-01-01T00:00:00Z" lastTimeUsedContacts="1601-01-01T00:00:00Z" lastTimeUsedTasks="1601-01-01T00:00:00Z" lastTimeUsedCalendar="1601-01-01T00:00:00Z" lastTimeUsedMail="1601-01-01T00:00:00Z" lastTimeUsed="2013-11-04T16:54:56.824Z" lastSessionUsed="0" guid="{00ce8d45-4555-47a2-b8b1-2f55d6ff6ccc}" renameOnFirstUse="1" />
<category name="Orange Kategorie" color="1" keyboardShortcut="0" usageCount="6" lastTimeUsedNotes="1601-01-01T00:00:00Z" lastTimeUsedJournal="1601-01-01T00:00:00Z" lastTimeUsedContacts="1601-01-01T00:00:00Z" lastTimeUsedTasks="1601-01-01T00:00:00Z" lastTimeUsedCalendar="2013-11-04T16:59:01.511Z" lastTimeUsedMail="1601-01-01T00:00:00Z" lastTimeUsed="2013-11-04T16:59:01.511Z" lastSessionUsed="1" guid="{0b4c0f71-b0cc-4c4e-afd1-99ba9af28ff9}" renameOnFirstUse="0" />
<category name="SChulung" color="2" keyboardShortcut="0" usageCount="6" lastTimeUsedNotes="1601-01-01T00:00:00Z" lastTimeUsedJournal="1601-01-01T00:00:00Z" lastTimeUsedContacts="1601-01-01T00:00:00Z" lastTimeUsedTasks="1601-01-01T00:00:00Z" lastTimeUsedCalendar="2013-11-12T16:11:01.011Z" lastTimeUsedMail="1601-01-01T00:00:00Z" lastTimeUsed="2013-11-12T16:11:01.011Z" lastSessionUsed="2" guid="{c5c0a53e-a556-4011-8530-0e8e7ddefc90}" renameOnFirstUse="0" />
<category name="Alltag" color="0" keyboardShortcut="0" usageCount="5" lastTimeUsedNotes="1601-01-01T00:00:00Z" lastTimeUsedJournal="1601-01-01T00:00:00Z" lastTimeUsedContacts="1601-01-01T00:00:00Z" lastTimeUsedTasks="1601-01-01T00:00:00Z" lastTimeUsedCalendar="1601-01-01T00:00:00Z" lastTimeUsedMail="1601-01-01T00:00:00Z" lastTimeUsed="2013-11-19T13:45:32.627Z" lastSessionUsed="2" guid="{d1d2d16e-10f3-4304-9f94-141016b95ccf}" renameOnFirstUse="0" />
<category name="Feiertag" color="5" keyboardShortcut="0" usageCount="6" lastTimeUsedNotes="1601-01-01T00:00:00Z" lastTimeUsedJournal="1601-01-01T00:00:00Z" lastTimeUsedContacts="1601-01-01T00:00:00Z" lastTimeUsedTasks="1601-01-01T00:00:00Z" lastTimeUsedCalendar="2013-11-19T13:52:12.467Z" lastTimeUsedMail="1601-01-01T00:00:00Z" lastTimeUsed="2013-11-19T13:52:12.467Z" lastSessionUsed="3" guid="{6e812025-ab62-4092-b599-55df683eef20}" renameOnFirstUse="0" />
</categories>
Мой первый вопрос: что значит??? значит в тот момент? Это вызвано тем, что я использую ASCII вместо UTF или какую-либо кодировку MS использует?
Моя программа, пытаясь декодировать вышеупомянутый документ, выдает "Ошибка в документе XML (2,13)" во второй строке следующего:
UserConfiguration UsrConfig = UserConfiguration.Bind(ews, "CategoryList", WellKnownFolderName.Calendar, UserConfigurationProperties.All);
System.IO.MemoryStream stream = new System.IO.MemoryStream(UsrConfig.XmlData);
Мой второй вопрос: что (2,13)
имею в виду?
Чтобы уточнить, я попросил программу вернуть BaseException
, это
System.FormatException: GUID muss 32 Ziffern mit 4 Bindestrichen enthalten (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
bei System.Guid.GuidResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument, String failureArgumentName, Exception innerException)
bei System.Guid.TryParseGuidWithNoStyle(String guidString, GuidResult& result)
bei System.Guid.TryParseGuid(String g, GuidStyles flags, GuidResult& result)
bei System.Guid..ctor(String g)
bei System.Xml.XmlConvert.ToGuid(String s)
bei Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMasterCategoryList.Read5_MasterCategoryList(Boolean isNullable, Boolean checkType)
bei Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMasterCategoryList.Read6_categories()
Проблема: я не вижу Guid, который не отвечает этим требованиям; и даже если бы я это сделал, источником XML является Microsoft - я не понимаю, почему мне нужно что-то там менять.
Десериализация XML выполняется в соответствии с моделью, которую я нашел в сети, которая содержит
[XmlAttribute("guid")]
public Guid Id
{
get { return _IdField; }
set {
_IdField = value;
RaisePropertyChanged("Id");
}
}
Мой третий вопрос: какие еще возможности, кроме изменения Guid
тип данных для string
я должен буду решить мою проблему? (Кстати, мне нужно только название и цвет категорий...)
1 ответ
Попробуйте использовать
(новый UTF8Encoding()).GetString(XmlData)
или же
(новый UnicodeEncoding()).GetString(XmlData)
вместо