32

我有一个 XSD,它正在经历从一组元素到另一组元素的转换。在过渡期间,会有代码期待新元素和代码期待旧元素。因此我需要将旧元素保留在 XSD 中;我将它们记录为已弃用(在 xs:documentation 元素中使用自由文本)。

有没有办法将元素标记为已弃用,这样如果有人使用了已弃用的元素,像 xmllint 这样的工具会自动发出警告?

4

1 回答 1

22

创建一个具有新命名空间的新模式。将此称为“版本 2”。如果您选择在您的应用程序中支持第 1 版 XSD 和第 2 版 XSD,那很好,但请让它们分开,不要试图将两者叠加在一起 ​​- 特别是如果您要阻止人们使用版本 1。

这是值得一看的,因为它描述了您正在处理的一些内容: http://www.pluralsight.com/community/blogs/tewald/archive/2006/04/19/22111.aspx 的存档

但是,我意识到这并不能真正解决您的问题。关于“有没有办法做到这一点?” 答案是“不——不是以普遍支持的方式”。我见过人们添加他们自己的文档注释来给出提示,但这不会被工具普遍理解。

从长远来看,您最好的选择是为您的模式创建一个版本控制故事,并将版本 2 与版本 1 分开。

于 2009-12-23T01:01:37.113 回答