schema - tipos - XSD: cómo redefinir el tipo de datos de un tipo simple, por ej. de xs: cadena a xs: entero
xml schema (1)
Por lo que puedo decir, esto no es posible.
La única redefinición que pude hacer para validar en XMLSpy fue:
<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 base.
Podría ser que XMLSpy está equivocado al respecto.
Esta cita algo críptica de la definición del esquema XML del W3C :
Dentro de [children], cada simpleType debe tener a entre sus [children] y cada complexType debe tener una restricción o extensión entre su grand- [children] el · valor real · de cuya base [attribute] debe ser la misma que la · valor real · de su propio atributo de nombre más espacio de nombres de destino;
podría estar hablando de esto (es esa parte de la especificación a la que se vincula XMLSpy para este error).
El único ejemplo realmente bueno de redefinir tipos simples que pude encontrar estaba aquí . En este ejemplo, la redefinición es solo para enumeraciones.
Estoy tratando de extender y adaptar un esquema xsd externo (del estándar fixml). Necesito cambiar el tipo de datos de algunos de los elementos, sin tocar el esquema original, sino redefiniéndolo; pero he estado encontrando extremadamente engorroso.
Lo que existe:
fields-base.xsd
<xs:simpleType name="LastUpdateTime_t">
<xs:restriction base="UTCTimestamp">
<xs:simpleType>
lo que quiero que sea:
<xs:simpleType name="LastUpdateTime_t">
<xs:restriction base="xs:string">
<xs:simpleType>
Lo que he intentado (pero fallé):
<xs:redefine schemaLocation="fields-base.xsd">
<xs:simpleType name="LastUpdateTime_t">
<xs:restriction base="xs:string" />
</xs:simpleType>
</xs:redefine>
Los libros y la red tampoco parecen haber ayudado demasiado, así que estoy empezando a preguntar si esto es teóricamente posible.