0

我被分配了一项任务,将参考数据从数据库导入一组实体类。这是一个更简单的实体类的示例:

public class CountryList
{
    public CountryList()
    {
        this.Countries = new List<Country>();           
    }

    public IList<Country> Countries { get; private set; }
}

填充 XML 文件不是我的责任。但是提供一个模式(XSD 文件)以指定所需的格式.

到目前为止,我已经尝试使用 / 注释所需的类/成员,[DataContract][DataMember]使用svcutil以下命令生成一组 XSD 文件:

svcutil /t:metadata /dconly MyProject.dll

这会在 10 个单独的 XSD 文件中生成大量内容。我找不到只指定我感兴趣的实体并将其全部缩小的方法。(只是需要导入一些参考数据,并且有很多实体类不需要在 XSD 中)。

在另一种方法上,我发现了这篇关于如何从 XML 文件反序列化的文章。表面上看起来很简单,但我想知道如何book生成此示例中的类的 XSD 文件?

4

2 回答 2

1

事实证明,使用代码(而不是使用xsd.exeor svcutil.exe)生成 XSD 要干净得多。以下是我遵循的步骤:

  1. 像这样创建一个新的控制台应用程序,但使用 aStreamWriter输出到文件而不是控制台。生成的 XSD 仅包含我需要的实体,仅此而已。[DataContract]/属性导致 XSD 构造与代码中的[DataMember]名称相同。

  2. 像这样使用 Eclipse 从 XSD 生成示例 XML 。

  3. 使用这样的代码将 XML 文件反序列化为所需的实体。

于 2013-05-01T14:38:48.437 回答
1

要从类中获取架构,反之亦然,请使用 xsd.exe

http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=vs.71).aspx

关于复杂类如何转换为不同的模式有很多阅读要做,但是您应该使用该工具开始一个体面的开始。

于 2013-05-01T08:13:55.357 回答