0

一开始我写了ac#类。然后我使用“xsd.exe”工具为该类创建了一个模式。我将此架构发布到我的数据库的架构集合中并创建了一个新的 xml 列:

CREATE XML SCHEMA COLLECTION AppointmentSC AS '不可能在论坛中插入模式' GO

ALTER TABLE 地址添加 xmlAppointment XML(AppointmentSC); 去

现在我可以序列化/反序列化我的类的对象进/出我的数据库。在下一步中,我想将我班级的多个对象保存到数据库中。我可以为我的班级创建一个集合,但我也想只用 sql 添加新对象。我想我需要一个自动增量 ID 或主键或类似的东西。在我的模式中创建唯一 ID 的每一次尝试都是无望的。

我正在使用 Visual Studio 2008 和 SQL Server 2008

最好的问候雷蒙德

4

1 回答 1

-1

我认为您可能将 XML Schema 与数据库模式混淆了。虽然两者都有相同的工作,但他们在完全不同且不相关的世界中运作。数据库具有主键,从逻辑上讲,数据库模式也应如此。标记没有主键,只有枚举作为元数据,因此在 XML Schema 语言中没有您正在寻找的约定。

看起来您正试图将数据库导出到试图为其编写模式的 XML 实例中。如果是这种情况,那么您必须接受标记提供与数据库表完全不同且不相关的功能。在数据库结构中,与列标签相关联的元数据、从其他表的继承等暗示了数据库结构。在标记结构的模式中,使用元数据来明确声明,该元数据将描述性结构派生到数据/内容位上,其中元数据可能直接描述数据,也可能不直接描述数据。

这里的问题不是技术问题。您只需练习手动编写 XML 模式语言并从这些模式生成实例文档,即可了解标记模式与数据库模式的区别、优点和弱点。

于 2009-08-23T08:50:25.730 回答