Я бы не использовал атрибуты для этого, поскольку атрибуты не могут «изменять» модели содержимого. Если вы думаете о том, чтобы сделать ваше приложение, обрабатывающее XML, «совместимым с прямым способом» (т.е. использовать старые XSD для нового контента), то я бы предпочел использовать обязательный элемент версии, за которым следует необязательный xsd: any - все смешивается с некоторыми правила оформления.
Короче говоря, вам понадобится установка такого типа, чтобы иметь возможность обрабатывать уникальное ограничение атрибуции частиц (или, другими словами, ограничение, которое парсер не может смотреть вперед, чтобы выяснить, "где" он находится в XSD).
Изначально вы даже можете начать без обязательного тега версии, просто добавьте дополнительный xsd: любой, где находится ваше место расширяемости. По мере того, как последующие версии улучшают содержимое, вам, возможно, придется добавить этот обязательный маркер версии (опять же, для работы с UPA), затем уточненное содержимое, а затем дополнительный необязательный xsd: any.
В общем, следует учитывать и другие вещи, такие как использование расширений / ограничений типов в вашем XSD и влияние, которое это может оказать на схемы прямой совместимости, такие как схема, которую я только что описал выше (пожалуйста, прочитайте это на SO ).