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 :

Le recours systématique aux types


Sujet :

Valider XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Points : 28
    Points
    28
    Par défaut Le recours systématique aux types
    Bonjour,

    Je voulais avoir l'avis d'experts du XSD pour m'indiquer si le recours systématique aux types était une bonne pratique ou non.

    Plus précisément, lorsque l'on veux restreindre la taille d'un xs:string par un maxlength=10 par exemple, est-il plus propre de coder cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xs:element name="myElement" type="ns0:threeCharString">
        <xs:annotation>
            <xs:documentation>Bla bla.</xs:documentation>
        </xs:annotation>
    </xs:element>
    Avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xs:simpleType name="threeCharString">
        <xs:annotation>
            <xs:documentation>3-char strings maximum</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="3"/>
        </xs:restriction>
    </xs:simpleType>
    Plutôt que de faire directement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xs:element name="myElement">
        <xs:annotation>
            <xs:documentation>Bla bla.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="3"/>
        </xs:restriction>
    </xs:element>
    J'ai l'impression que même si c'est plus modulaire, cela me parraît extrêmement lourd compte tenu de la prolifération de type possible (pour chaque longueur max différente dans ce cas précis).

    Quel est votre avis ?

    Merci.

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    [0] Si un type ne s'applique qu'anecdotiquement, et qu'il ne fasse pas sujet de référence nulle part ailleur, il est bien entendu prête à rester anonyme, souhaitable ou non: chaqu'un à sa préférence; sinon, un type nommé peut vous aider et même parfois nécessaire en raison multiple: de réutilisable, prête à être référencié dans le schéma ou dehors - dans xquery ou xslt 2.0 -, de faire encore d'extension ou de restriction, de lisibilité et de clarté structurales.

    [1] Pour la deuxième construction, il faut tout de même mettre xs:simpleType là.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <xs:element name="myElement">
        <xs:annotation>
            <xs:documentation>Bla bla.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:maxLength value="3"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/05/2014, 14h24
  2. Réponses: 8
    Dernier message: 02/09/2013, 10h13
  3. Methodes abstraites aux types surchargés
    Par AnonCoder dans le forum Langage
    Réponses: 2
    Dernier message: 27/04/2007, 12h28
  4. Pour convertir les dates aux types "datetime" sous
    Par nnn2050 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/01/2006, 16h30

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