我有一个XSD正在经历从一组元素到另一组元素的转换。在转换过程中,会有代码期望新元素和代码期望旧元素。因此,我需要保留XSD中的旧元素;我将它们记录为已弃用(在xs:documentation元素中使用自由文本)。
有没有办法将元素标记为已弃用,以便xmllint等工具会在有人使用不推荐的元素时自动发出警告?
答案 0 :(得分:20)
使用新的命名空间创建新架构。称之为“版本2”。如果你选择在你的应用程序中支持版本1 XSD和版本2 XSD,那就好了,但要保持它们是分开的,不要试图将两者叠加在一起 - 特别是如果你要试图阻止人们使用版本1.
这值得一看,因为它描述了你正在处理的一些事情: archive of http://www.pluralsight.com/community/blogs/tewald/archive/2006/04/19/22111.aspx
然而,我知道,这并没有真正解决你的问题。关于“有没有办法做到这一点?”答案是“不 - 不是以普遍支持的方式”。我已经看到人们添加他们自己的doc注释来提供提示,但这并不是通过工具普遍理解的。从长远来看,最好的办法是为您的架构创建一个版本控制故事,并将版本2与版本1分开。