IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Valider XML Discussion :

[XSD] : Element 'date' vide [FAQ]


Sujet :

Valider XML

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 22
    Points : 8
    Points
    8
    Par défaut [XSD] : Element 'date' vide
    Bonjour

    Dans mon schéma, j'ai plusieurs éléments de type 'date'.
    exemple :
    <xsd:element name="dat_naissa" type="xsd:date" minOccurs="0"/>
    <xsd:element name="dat_instal" type="xsd:date" minOccurs="0"/>
    <xsd:element name="dat_ja" type="xsd:date" minOccurs="0"/>

    Je crée un fichier XML (basé sur le schéma) à partir d'une table dont les champs de type date sont vides, et non nuls.
    Je me retrouve donc avec ceci dans l'XML :
    <dat_naissa>1951-08-01</dat_naissa>
    <dat_instal/>
    <dat_ja/>

    Le problème, c'est quand je relis mon fichier XML, j'ai l'erreur :
    The content on element 'dat_instal' is not valid according to its type definition 'xs:date'.

    Peut-on mettre une valeur par défaut 'vide' sur une date ? Où il y a une autre solution?

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    J'ai testé avec nillable='true', mais j'ai toujours le même problème.
    Quelqu'un a une idée ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Vu qu'il n'avait pas de réponse à ma question, je me suis dit que cela devait être spécifique à ma base de données (Foxpro) que j'exporte en XML.

    J'ai donc remplacé mes dates vides en nulles avant l'export, et je n'ai plus de problème.

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    Le moyen le plus simple d'autoriser une valeur vide pour un élément d'un type donné consiste à faire une union entre ce type de données et une valeur vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <xs:simpleType name="datevide">
      <xs:union memberTypes="xs:date">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
    ...
    <xs:element name="dat_naiss" type="datevide"/>
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 39
    Points : 31
    Points
    31
    Par défaut
    Et que se passe t'il si on veut faire l'union entre SimpleType (ou un memberType) et un ComplexType (qu'on aurait défini nous-meme) afin de dire qu'un ComplexType puisse être vide ?

    Il semble que cette solution ne soit pas possible d'après la définition de l'union ?
    <union
    id = ID
    memberTypes = List of QNames
    {any attributes with non-schema Namespace}...>
    Content: (annotation?, (simpleType*))
    </union>

Discussions similaires

  1. [XSD] Element vide
    Par be_tnt dans le forum Valider
    Réponses: 2
    Dernier message: 08/11/2006, 09h11
  2. [XSD] Elements de meme nom dans une sequence
    Par MathiasM dans le forum Valider
    Réponses: 2
    Dernier message: 14/04/2005, 09h33
  3. champ date vide, requete
    Par w.b. dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 15/02/2005, 16h51
  4. [XSD] element texte non parsé
    Par bulbo dans le forum Valider
    Réponses: 13
    Dernier message: 10/01/2005, 11h44
  5. Update de date vide dans une table
    Par gidebo dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/03/2004, 16h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo