2011-09-20 38 views
0

我有一个设计相关的问题。那么请指导我如何做到这一点?类设计相关说明c#

现在,我有一个xml结构,它将以这种格式。

<Sheet id="abc"/> 
    <Elements> 
     <Element id="xyz"> 
      <value>23</value> 
     </Element> 
     <Element id="sdz"> 
      <value>46</value> 
     </Element> 
     ... 
    </Elements> 
</Sheet> 

所以,我们有这样一个类来存储每个&板的每一个元素。

Sheet 
{ 
    Public string SheetId 
    { 
     get; set; 
    } 

    //all Elements will be stored in the below collection 
    Public IList<IDictionary<string, string>> Elements 
    { 
     get; set; 
    } 
} 

但是,现在对于少数表格格式已被更改为以下结构。

<abc> //SheetId 
    <Elements> 
     <Record> 
      <Element1/> 
      <Element2/> 
      <Element3/> 
      <Element4/> 
     </Record>  
     <Record> 
      <Element1/> 
      <Element2/> 
      <Element3/> 
      <Element4/> 
     </Record> 
     ... 
</abc> 

所以,我们需要创建一个通用类来保存上面的XML格式,我们不希望有不同的对象来存储这些。

我的意思是在未来,如果我们有其他的xml格式,我们也需要在sheet类中没有任何改变的情况下适应。

所以,你能告诉我如何设计表单类。

好的。让我解释我的应用程序的工作原理。

其实我们有大约200张(换句话说,措施)。

1)用户,如果他们想将XML格式上传(该表数据的XML文件中的所有表)&编辑相同或屏幕(使用XML模板生成的动态画面)输入数据,如果他们不想要上传。

2)然后数据将被存储在Sheet对象中,并且它将经过很多验证过程,最后数据将被再次转换为xml并存储在db中。

你可以问你为什么要把它作为XML存储?原因是我们不想为这种类型的数据创建200个aspx页面,这就是为什么我们使用xml模板动态生成表单页面。另外,我们会经常添加,更新或删除表单。

好的。我想现在你会对这个问题有所了解。

为了更加清楚,我的XML文件中的所有元素都将显示为aspx页面中的一个字段。它可能是一个文本框,下拉& etc ....

+0

在第二个例子中有'Id's或''吗? –

+0

是的。工作表Id现在是第二个示例中的根元素。 “ABC”。 – GSP

+0

@HenkHolterman:另外,我忘了告诉你一件事,在第二个例子中将是。 – GSP

回答

4

我会建议根据信息实际代表什么和您的软件如何计划利用数据,而不是使用的XML格式设计您的类。

您应该始终能够从数据格式转换为最能代表您的程序如何使用此数据的结构。

+0

嗨里德,谢谢你的回复。但问题在于,客户只会上传xml文件,而我们需要解析这些文件,并对xml数据进行大量分析。另外,我们在SQL DB中存储整个xml。 – GSP

+0

@GSP:那么我会建议您将您的课程设计置于您计划存储在数据库中的信息之外。您可以映射XML - >您的结构,分析它,然后根据需要进行存储。 –

+0

嗨,里德,我不清楚你在说什么?另外,我想告诉你的一件事是,这个网络应用程序在过去的10年中一直在使用,我不认为我们的管理人员已经准备好迎接任何重大的设计变更。 – GSP