【发布时间】:2013-06-18 09:09:19
【问题描述】:
我正在使用 SQL Server 2008 并忙于做 POC,其中我有一个带有类型化 XML 列的表。 POC 的本质是随着我们对存储在其中的数据的需求的发展,XML 将随着时间而改变。 (我们在 C# 中序列化对象以将数据持久化到 DB)
但是,出于审核目的,我需要将旧 XML 保留在表中,并且能够使用更新的架构验证正确添加到其中的任何新 XML。
我尝试从集合中删除模式,更新它(在这种情况下添加必需的属性),将其添加回集合,然后将其绑定到它所属的列。这样做时,我只是收到一个验证错误,即列中的 XML 验证失败,因为它不包含新属性。
有没有办法更新 XML 列以使用新的架构并忽略已存储在列中的 XML?或者是否可以在将新架构添加到 XML 列时禁用验证?
【问题讨论】:
-
好的,我认为 POC 的这一部分可能会失败。根据 Jacob Sebastion 在他的书 The Art Of XSD link 第 38 页 - 顶部 - 我想要做的事情是不可能的。
-
如何修改架构?你在控制它吗?
-
是的,我正在控制版本。我将旧版本保留在架构集合中,但只将最新版本绑定到 XML 列。
标签: xml sql-server-2008 xsd schema