No wonder it doesn't work - your "xml file" is not well formed, only contains XML declaration.

Also your repro code should be applied one liner fix that makes it very much helpful by *not* overwriting the same file which makes it impossible to examine the issue. You could just save XML into *another* file, so that everyone does not have to re-extract your archive over and over again.

Thanks,
Atsushi Eno

I've narrowed the issue down - it only occurs when XDocument.Load is used with LoadOptions.PreserveWhitespace. I've uploaded an example demonstrating this error. The relevant XML file is in /bin/Debug.
http://sircmpwn.users.sf.net/uploads/0TestXDocument.tar.gz

--
Drew "Sir Cmpwn" DeVault

On 02/06/2012 12:14 AM, Atsushi Eno wrote:
I have one doubt that I think is likely the cause of the problem and also that prevents me from verifying it: you seem to have non-ASCII character in your XML you pasted in the message. This could be cause of the error e.g. inconsistent encoding input/output. A reproducible test case that everyone can examine is appreciated.

Atsushi Eno


I can duplicate this problem on Linux Mint 12 and Ubuntu 11.10, but Microsoft.NET on Windows 7 does not have the issue. The issue is that my XDocument becomes corrupted the moment it loads, and cannot be saved. Strangely, I am able to traverse it and manipulate it in memory. The following code:

Stream s = File.Open("example.xml", FileMode.Open);
XDocument d = XDocument.Load(s);
s.Close();
d.Save("example.xml");

Produces the following exception:

[23:19:05] PartyCraft.CurrentDomain_UnhandledException: Error: InvalidOperationException: This XmlWriter does not accept Text at this state Prolog. [ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: This XmlWriter does not accept Text at this state Prolog. at System.Xml.XmlTextWriter.ShiftStateContent (System.String occured, Boolean allowAttribute) [0x00000] in <filename unknown>:0 at System.Xml.XmlTextWriter.WriteString (System.String text) [0x00000] in <filename unknown>:0 at System.Xml.DefaultXmlWriter.WriteString (System.String text) [0x00000] in <filename unknown>:0 at System.Xml.Linq.XText.WriteTo (System.Xml.XmlWriter w) [0x00000] in <filename unknown>:0 at System.Xml.Linq.XDocument.WriteTo (System.Xml.XmlWriter w) [0x00000] in <filename unknown>:0 at System.Xml.Linq.XNode.ToString (SaveOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XNode.ToString () [0x00000] in <filename unknown>:0
at PartyCraftServer.XmlSettings.set_Item (System.String key, System.String value) [0x00000] in <filename unknown>:0 at PartyCraftServer.Commands.SettingCommand.ExecuteCommand (LibMinecraft.Server.RemoteClient client, System.String[] parameters) [0x00000] in <filename unknown>:0 at PartyCraftServer.Commands.Command.Execute (LibMinecraft.Server.RemoteClient client, System.String command) [0x00000] in <filename unknown>:0
at PartyCraftServer.PartyCraft.Run () [0x00000] in <filename unknown>:0
at PartyCraftServer.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

The same exception occurs on d.ToString();

The XML that is being loaded looks like this:

<?xml version="1.0" encoding="utf-8" ?>
<partyCraft>
<server maxplayers="100">
<motd>PartyCraft Test Server</motd>
<messages>
<death>
<!--TODO-->
<suicide>§e{0} killed themselves.</suicide>
<creeper>§e{0} looked at a creeper funny.</creeper>
</death>
</messages>
</server>

<command>
<alias>
<setting>s</setting>
</alias>
</command>

<plugins>
<!--TODO-->
<plugin>TestPlugin.dll</plugin>
</plugins>
</partyCraft>

And when saved, even though an exception occurs, the document is overwritten with this:

<?xml version="1.0" encoding="utf-8" ?>

This is the output from mono --version:

Mono JIT compiler version 2.10.5 (Debian 2.10.5-1)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)

Any help would be appreciated.

--
Drew "Sir Cmpwn" DeVault
_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to