2010-01-19 13 views
5

Sto provando ad estendere e adattare uno schema xsd esterno (dello standard fixml). Ho bisogno di cambiare il tipo di dati di alcuni elementi, senza toccare lo schema originale, ma ridefinendolo; ma lo hanno trovato estremamente macchinoso.XSD: come ridefinire il tipo di dati di un SimpleType es. da xs: stringa a xs: intero

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 net dont s Anche per me è stato di grande aiuto, quindi sto iniziando a chiedermi se ciò sia teoricamente possibile.

risposta

4

Per quanto posso dire questo non è possibile.

L'unica ridefinire ho potuto fare validate in XMLSpy era:

<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 abbia torto su questo.

Questa citazione un po 'criptico dal W3C XML Schema definition:

Entro i [i bambini], ogni simpleType deve avere un tra i suoi [i bambini] e ogni complexType deve avere una restrizione o estensione tra i suoi grand- [children] il · valore effettivo · di il cui [attributo] di base deve essere lo uguale al · valore effettivo · del proprio attributo del nome più lo spazio dei nomi di destinazione;

potrebbe parlare di questo (è quella parte della specifica dei collegamenti XMLSpy per questo errore).

L'unico vero esempio di ridefinizione di tipi semplici che ho trovato è stato here. In questo esempio, la ridefinizione è solo per le enumerazioni.

Problemi correlati