Domanda

Sto cercando di estendere e adattare uno schema XSD esterna (dello standard FIXML). Ho bisogno di cambiare il tipo di dati di alcuni degli elementi, senza toccare lo schema originale, ma ridefinendo esso; ma sono stati trovando estremamente ingombrante.

Ciò che esiste:

campi-base.xsd

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

quello che voglio che diventi:

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

Quello che ho cercato (ma non è riuscito):

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

Libri e Dont rete sembrano aver aiutato troppo neanche, quindi sto iniziando a mettere in discussione se questo è teoricamente possibile a tutti.

È stato utile?

Soluzione

Per quanto posso dire questo non è possibile.

L'unica ridefinire ho potuto fare validate in XMLSpy è stato:

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

Cioè, la nuova restrizione deve essere basata sulla restrizione di base.

potrebbe essere che XMLSpy è sbagliato su questo.

Questa citazione un po 'criptico dal W3C XML definizione dello schema :

  

Entro i [i bambini], ogni   simpleType deve avere un   tra i suoi [i bambini] e ciascuno   complexType deve avere una restrizione   o estensione tra i suoi   nonni [i bambini] il · valore effettivo di ·   la cui base [attributo] deve essere   uguale al valore effettivo · · della propria   nome dell'attributo più bersaglio namespace;

potrebbe parlare di questo (che è quella parte della specifica i link XMLSpy a questo errore).

L'unico buon esempio di ridefinire tipi semplici ho trovato è stato qui . In questo esempio, la ridefinizione è solo per le enumerazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top