С этим нет проблем, если только вы не используете подход моделирования, при котором вы ссылаетесь на глобальные элементы (так называемая схема «ломтик салями»), поскольку вы не можете определить два глобальных элемента с одинаковым именем. Если вы используете чуть более типичный подход, это не проблема (обратите внимание, я опускаю повторяющийся список пассажиров для ясности):
<xs:complexType name="FlightDefinition">
<xs:sequence>
<xs:element name="passenger" type="Passenger"/>
</xs:sequence>
<xs:attribute name="number" type="xs:ID" use="required"/>
</xs:complexType>
<xs:complexType name="Passenger">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="flight" type="FlightReference"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FlightReference">
<xs:attribute name="href" type="xs:IDREF" use="required"/>
</xs:complexType>
<xs:element name="flight" type="FlightDefinition"/>
Между прочим: я полагаю, что ссылка на рейс внутри пассажира будет указывать куда-то еще, это излишне, если пассажир находится внутри предка полета.