当我使用创建 XML 文件XmlSerializer
并尝试在 excel 中打开它时,我收到以下消息:
The specified XML source does not refer to a schema.
Excel will create a schema based on the XML source data.
有没有办法在 xml 文件中包含架构,以便 Excel(或任何其他程序)不需要计算它?
这是一个示例程序,展示了我如何创建我的 xml 文件。
namespace Sandbox_Console
{
internal class Program
{
private static void Main()
{
List<MyClass> test = new List<MyClass>();
test.Add(new MyClass() { Name = "Test", Foo = "Shazam"});
test.Add(new MyClass() { Name = "Test2", Foo = "Shazam2" });
XmlSerializer ser = new XmlSerializer(typeof (List<MyClass>));
using (var file = new FileStream(@"C:\Users\srchamberlain\Desktop\test.xml", FileMode.Create))
{
ser.Serialize(file, test);
}
}
}
public class MyClass
{
[XmlAttribute]
public string Name { get; set; }
[XmlElement]
public string Foo { get; set; }
}
}
生成的 XML
<?xml version="1.0"?>
<ArrayOfMyClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MyClass Name="Test">
<Foo>Shazam</Foo>
</MyClass>
<MyClass Name="Test2">
<Foo>Shazam2</Foo>
</MyClass>
</ArrayOfMyClass>
在我生成的真实文件中,文件大小超过 300 MB,解析数据需要很长时间,我希望通过提供架构可以减少处理文件所需的时间.