XSD: Como redefinir o tipo de dados de um simplório, por exemplo. De Xs: String a XS: Inteiro

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

Pergunta

Estou tentando estender e adaptar um esquema XSD externo (do padrão FixML). Preciso alterar o tipo de dados de alguns dos elementos, sem tocar no esquema original, mas redefinindo -o; mas tenho achado extremamente complicado.

O que existe:

campos-bashe.xsd

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

O que eu quero que se torne:

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

O que eu tentei (mas falhei):

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

Livros e rede também não parecem ter ajudado muito, então estou começando a questionar se isso é teoricamente possível.

Foi útil?

Solução

Tanto quanto posso dizer, isso não é possível.

A única redefinir que eu poderia fazer validar no XMLSPY foi:

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

Ou seja, a nova restrição deve ser baseada na restrição base.

Pode ser que o XMLSPY esteja errado sobre isso.

Esta citação um tanto enigmática do Definição de esquema W3C XML:

Dentro das [crianças], cada simplório deve ter um entre seus [filhos] e cada complexo deve ter uma restrição ou extensão entre seus netos, o valor real · de cuja base [atributo] deve ser o mesmo que o · valor real · de seu próprio atributo de nome mais espaço para nome de destino;

Pode estar falando sobre isso (é parte da especificação que o XMLSPY links para este erro).

O único exemplo realmente bom de redefinir tipos simples que pude encontrar foi aqui. Neste exemplo, a redefinição é apenas para enumerações.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top