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

34

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

是否有一种方法可以将元素标记为已弃用,以便像xmllint这样的工具会自动警告如果有人使用已弃用的元素?

1个回答

25
创建一个带有新命名空间的新架构。将其称为“版本2”。如果您选择在应用程序中支持版本1 XSD和版本2 XSD,那么很好,但请将它们分开,并且不要试图将两者相互叠加 - 特别是如果您要尝试阻止人们使用版本1。

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

然而,我意识到这并没有真正回答你的问题。关于“是否有办法做到这一点?”,答案是“否-没有通用的支持方式”。我看过有人添加自己的文档注释以提供提示,但这不会被所有工具普遍理解。

从长远来看,您最好为架构(们)创建版本控制故事,并将版本2与版本1分开。


这是一个有趣的(旧的)讨论,但它主要从API提供者的角度来处理合同,而不是API消费者。我在自己的清单中添加了一个额外的关注点,即如果API消费者需要根据日期上传数据,理想情况下,API提供者不会完全废弃一个字段,而只是将其标记为过时。一个例子是在现实世界中删除一些值的枚举。最好将这些枚举值标记为过时。但是<xs:enumeration value="0" maxOccurs="0" />并不等同于“过时”。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接