В DTD вы можете определить атрибут как ID, а другой как IDREF; Значения идентификатора должны быть уникальными в документе, а значения IDREF должны «указывать» на идентификатор, существующий в документе.
Но у вас не может быть двух разных моделей содержимого для одного и того же имени элемента, поэтому тип атрибута не может зависеть от того, где он появляется.
В XSD вы МОЖЕТЕ иметь две разные модели содержимого для одного и того же имени элемента, определяя объявления локальных элементов; но вы не можете сделать это, если они появляются как братья и сестры (потомки одного и того же родительского элемента).