XML属性表示覆盖与保留现有值

时间:2011-05-18 19:16:51

标签: c# xml xml-serialization

我可以使用一些关于使用XML的指导。

我正在研究几种XML互操作规范,这些规范将用于在我们的系统中创建或更新数据。我想为我的客户提供一种方法,使用XML规范通过自动化指定他们想要维护哪些元素,而不是事后手动更新记录。对此的快速回答是,我们的客户有上游应用程序,可以提供我们的应用程序所需的一些但通常不是所有数据,因此他们通常会向我们发送部分信息以备记录,然后在我们的应用程序中维护其余部分。 / p>

假设有一个简单的XML:

<Data>
  <Element1 />
  <Element2 />
  <Element3 />
</Data>

客户A可能提供元素1和2但不提供元素3,因此他们希望配置3以在更新之间保留值,但是1和2始终用新值覆盖。

客户B可能提供元素1,2和3,并希望配置为始终覆盖所有3个元素。

所以我想客户A真正想要的是这样的:

<Data>
   <Element1>data1</Element1>
   <Element2>data2</Element2>
   <Element3 overwriteExistingData="false"></Element3>
</Data>

我在某种程度上理解XML,但发现通过简单地创建C#类,在必要时使用属性进行一些装饰,然后使用xsd.exe生成模式并在一天内调用它来创建XML模式非常容易。

我不确定的是 - 如何区分空值和客户没有值的东西 - 处理这些部分数据情况的最佳方法,我不会为每次更新获得完整的替换记录。

我确信我在某种程度上错过了这条船,但我真的很喜欢有一个类定义的简单性,并告诉客户给我XML,它允许我只输入一行代码将XML反序列化为我的C#对象。

非常感谢任何指导

0 个答案:

没有答案