【发布时间】:2011-09-16 19:51:59
【问题描述】:
实用程序“xsd.exe”将生成以各种方式对应于 xsd 架构文件中的信息的 c# 类源代码。
所以,我下载了位于“http://www.w3.org/2001/XMLSchema”的架构文件“XMLSchema.xsd”——这是 xsd 文件本身的架构。
我生成与“模式的模式”对应的 C# 类,使用:
xsd.exe /classes /namespace:w3c XMLSchema.xsd
到目前为止一切顺利。我在命名空间“w3c”中得到一个包含 C# 类“schema”和其他内容的文件“XMLSchema.cs”,我继续将其添加到还包含以下内容的 C# 项目中:
try
{
XmlSerializer loader = new XmlSerializer(typeof(w3c.schema));
//never here!! previous line throws!
FileStream fs = new FileStream(
@"M:\src\Interfaces\MyClass1.xsd", FileMode.Open, FileAccess.Read
);
object fromXml = loader.Deserialize(fs);
w3c.schema MyClass1Schema = (w3c.schema)fromXml;
}
catch(Exception e)
{
}
不幸的是,它在 try 块的第一行抛出了以下错误:
XML 元素“注释”来自 命名空间 'http://www.w3.org/2001/XMLSchema' 是 已经存在于当前范围内。 使用 XML 属性指定另一个 元素的 XML 名称或命名空间。
有人遇到过这个错误吗?
我宁愿不对生成的文件“XMLSchema.cs”进行任何修改。
我也(最初)尝试过:
xsd /classes XMLSchema.xsd
(并且在 C# 测试代码中没有命名空间)具有相同的结果。
【问题讨论】: