XSD: Comment redéfinir le type d'un exemple simpleType de données. de xs: string à xs: integer

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

Question

Je suis en train d'étendre et adapter un schéma xsd externe (de la norme FIXML). Je dois changer le type de données de certains des éléments, sans toucher le schéma original, mais en le redéfinissant; mais ont été le trouver très lourd.

Ce qui existe:

champs base.xsd

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

ce que je veux qu'il devienne:

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

Ce que j'ai essayé (mais pas):

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

Livres et Do not net semblent avoir aidé trop non plus, donc je commence à remettre en question si cela est théoriquement possible du tout.

Était-ce utile?

La solution

Pour autant que je peux dire cela est impossible.

La seule Redéfinir je pouvais faire validate dans XMLSpy est:

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

C'est, la nouvelle restriction doit être fondée sur la restriction de base.

Peut-être que XMLSpy est faux à ce sujet.

Cette citation un peu cryptique de la XML du W3C définition de schéma :

  

Dans les [enfants], chaque   simpleType doit avoir un   parmi ses [enfants] et chaque   complexType doit avoir une restriction   ou l'extension entre sa   [enfants] grands- la · valeur réelle · de   dont la base [attribut] doit être   même que la · valeur réelle · de sa propre   nom d'attribut, plus l'espace de noms cible;

pourrait parler de cela (il est partie de la spécification des liens XMLSpy à cette erreur).

Le seul très bon exemple de redéfinir des types simples que je pouvais trouver était . Dans cet exemple, la redéfinition est seulement pour les énumérations.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top