2013-11-28 67 views
0

這是一個XML文檔的ASCII數據由EWS調用使用(new ASCIIEncoding()).GetString(XmlData)返回並格式化:錯誤的XML文檔(2,13)

<?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的起源就是微軟 - 我不明白爲什麼我應該改變那裏的任何東西。

的XML序列化是根據模型我在網上發現,其中含有

[XmlAttribute("guid")] 
public Guid Id 
{ 
    get { return _IdField; } 
    set { 
     _IdField = value; 
     RaisePropertyChanged("Id"); 
    } 
} 

我的第三個問題做了什麼其他的可能性,不是改變Guid數據類型string,我將不得不解決我的問題? (順便說一句,我只需要名稱和類別的顏色...)

+2

是,' <?xml'(BOM)和'Gr ?? ne'('ü')幾乎表明您使用ASCII編碼,其中源代碼是Unicode。 – CodeCaster

回答