XSD: Cómo redefinir el tipo de datos de un simpleType por ejemplo. de xs: string a xs: número entero

StackOverflow https://stackoverflow.com/questions/2090855

Pregunta

Estoy tratando de extender y adaptar un esquema XSD externa (de la norma fixml). Necesito cambiar el tipo de datos de algunos de los elementos, sin tocar el esquema original, pero redefiniéndola; pero se han encontrando muy engorroso.

Lo que existe:

campos-base.xsd

<xs:simpleType name="LastUpdateTime_t">
           <xs:restriction base="UTCTimestamp">
<xs:simpleType>

lo que quiero que se convierta en:

<xs:simpleType name="LastUpdateTime_t">
           <xs:restriction base="xs:string">
<xs:simpleType>

Lo que he tratado (pero falló):

<xs:redefine schemaLocation="fields-base.xsd">
            <xs:simpleType name="LastUpdateTime_t">
              <xs:restriction base="xs:string" />
            </xs:simpleType>
 </xs:redefine>

Libros Y no neta parecen haber ayudado demasiado bien, así que estoy empezando a cuestionar si esto es teóricamente posible en absoluto.

¿Fue útil?

Solución

Por lo que yo puedo decir esto no es posible.

El único que podría hacer redefinen validar en XMLSpy era:

<xs:redefine schemaLocation="fields-base.xsd"> 
        <xs:simpleType name="LastUpdateTime_t"> 
          <xs:restriction base="LastUpdateTime_t" /> 
        </xs:simpleType> 
</xs:redefine> 

Es decir, la nueva restricción debe basarse en la restricción de base.

Podría ser que XMLSpy es equivocado acerca de esto.

Esta cita tanto críptica de la W3C XML definición de esquema:

  

Dentro de los [niños], cada uno   simpleType debe tener una   entre sus [hijos] y cada   complexType debe tener una restricción   o la extensión entre sus   abuelos [niños] el valor real · · de   cuya base [atributo] debe ser el   mismo que el valor real · · de su propia   nombre del atributo más espacio de nombres de destino;

podría estar hablando de esto (que es la parte de la especificación de los enlaces a XMLSpy de este error).

El único ejemplo muy bueno de la redefinición de los tipos simples que pude encontrar fue aquí . En este ejemplo, la redefinición es sólo para enumeraciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top