2009-12-23 5 views
20

J'ai un XSD qui traverse une transition d'un ensemble d'éléments à un autre. Pendant la transition, il y aura du code s'attendant à ce que les nouveaux éléments et le code attendent les anciens éléments. Par conséquent, j'ai besoin de garder les anciens éléments dans le XSD; Je les documente comme obsolètes (en utilisant du texte libre dans un élément xs: documentation).Marquer l'élément comme obsolète dans XSD

Existe-t-il un moyen de marquer un élément comme étant obsolète de sorte qu'un outil tel que xmllint avertira automatiquement si quelqu'un utilise un élément obsolète?

Répondre

18

Créez un nouveau schéma, avec un nouvel espace de noms. Appelez cette "version 2". Si vous choisissez de prendre en charge la version 1 XSD et la version 2 XSD dans votre application, ça va, mais gardez-les séparés et n'essayez pas de superposer les deux les uns sur les autres - surtout si vous essayez d'empêcher les gens d'utiliser le Version 1.

Ceci est intéressant de regarder comme il décrit une partie de ce que vous avez affaire à: archive of http://www.pluralsight.com/community/blogs/tewald/archive/2006/04/19/22111.aspx

Je me rends compte, cependant, qui ne répond pas vraiment à votre question. En ce qui concerne "est-il un moyen de faire cela?" la réponse est "non - pas d'une manière universellement soutenue". J'ai vu des gens ajouter leurs propres annotations de doc pour donner des conseils, mais cela ne sera pas compris universellement par l'outillage. Votre meilleur pari à long terme est de créer un scénario de version pour vos schémas et de garder la version 2 séparée de la version 1.

Questions connexes