¿Cómo extiendo un esquema base con elementos personalizados mientras permanezco abierto para cambiar de nuevas versiones?

Dado un XSD de la siguiente manera:

<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"  xmlns:std="http://..." targetNamespace="...">
  <xs:element name="SomeRootNode" type="std:SomeRootNodeType" />
  ...
</xs:schema>

que define algunos elementos que permiten a cualquier hijo de un espacio de nombres diferente.

Quiero ampliar este esquema con el mío e insertar elementos secundarios y atributos de elementos específicos en el documento base. Por ejemplo, myElementX o myAttributeY deben tener el nodo primario std: SomeRootNode. El documento combinado debería ser capaz de permitir que cualquier tercero continúe extendiendo el documento de cualquier manera que ya esté permitida por el esquema base, pero para los elementos y atributos de mi espacio de nombres quiero validar que todos los elementos y atributos tengan los nodos principales correctos y solo aparecen en los lugares permitidos en el documento base.

¿Cómo se puede lograr esto?

Espero que haya una solución limpia que no recurra a redefinir el esquema base que estoy extendiendo. Quiero poder adaptarme fácilmente si se lanzan nuevas versiones del esquema base. No quiero tener que cambiar el mío con nuevas redefiniciones cada vez que se lanza una nueva versión del documento base (a menos que tenga cambios importantes para mi diseño).

Respuestas a la pregunta(1)

Su respuesta a la pregunta