在XSD中将元素标记为已弃用

mop*_*oke 25 xsd deprecated

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

有没有办法将元素标记为已弃用,以便xmllint等工具会在有人使用不推荐使用的元素时自动发出警告?

Mar*_*eck 22

使用新命名空间创建新架构.称之为"版本2".如果你选择在你的应用程序中支持版本1 XSD和版本2 XSD,那就好了,但要保持它们是分开的,不要试图将两者叠加在一起 ​​- 特别是如果你要试图阻止人们使用版本1.

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

但是,我意识到这并没有真正解决你的问题.关于"有没有办法做到这一点?" 答案是"不 - 不是以普遍支持的方式".我已经看到人们添加他们自己的doc注释来提供提示,但这并不是通过工具普遍理解的.

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