Defina un elemento XSD que puede ser un dateTime o vacío con un atributo

Mi pregunta es casi exactamente la misma queéste, pero para un tipo xs: dateTime en lugar de un elemento definido por el usuario.

Un elemento en mi XML (que no creo) puede tener el siguiente aspecto:

<parent>
    ...
    <start>2012-01-01T00:00:00.000</start>
    <end>2013-01-01T00:00:00.000</end>
    ...
</parent>

-o-

<parent>
    ...
    <start reference="a string" />
    <end reference="a string" />
    ...
</parent>

En otras palabras, dentro del elemento principal, los campos "inicio" y "final" pueden contener un valor xs: dateTime, o estarán vacíos, pero tienen un atributo de "referencia" (cualquiera de los campos puede ser uno u otro dentro del elemento principal , no son necesariamente tanto una referencia como ambos una fecha y hora). He intentado todo tipo de formas de representar esto en un XSD, pero no he encontrado una solución. Lo más cerca que he llegado es (extraído de un XSD mucho más grande):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="DateOrRef">
    <xs:simpleContent>
<!--      <xs:extension base="xs:dateTime"> This does not validate-->
      <xs:extension base="xs:string">
        <xs:attribute type="xs:string" name="reference" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="parent">
    <xs:sequence>
        <xs:element minOccurs="0" name="start" type="DateOrRef" />
        <xs:element minOccurs="0" name="end" type="DateOrRef" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>

que sí valida, pero no restringe el contenido del nodo para que sea un valor xs: dateTime. Si cambio el tipo de base de extensión a xs: dateTime en lugar de xs: string como en la línea comentada, los elementos vacíos ya no se validarán porque el tipo dateTime no puede estar vacío.

¿Cómo podría estructurar el XSD para validar estos campos como xs: dateTime en lugar de xs: string?

Respuestas a la pregunta(2)

Su respuesta a la pregunta