On Thu, 2004-09-16 at 12:36, Yann Nicolas wrote:
> Merci de votre réponse, claire et prompte comme toujours !
>
> >> Y a-t-il un moyen avec XSD d'empêcher des attributs ou éléments
> vides
> >> ?
> >
> >Si par valeur vide, vous voulez dire <foo/> pour un élément ou bar=""
> >pour un attribut, tout dépend de vos types de données.
>
> C'est bien cela que je voulais dire.
> Je veux une valeur de type xs:string, mais non nulle (et je commence à
> comprendre qu'une valeur nulle est bien du string, même si c'est un
> cas limite).
> En regardant de plus près les specs (II, 4.3.2.), je trouve cet
> exemple qui devrait me convenir parfaitement :
>
> Example
> The following is the definition of a ·user-derived· datatype which
> requires strings to have at least one character (i.e., the empty
> string is not in the ·value space· of this datatype).
> <simpleType name='non-empty-string'>
> <restriction base='string'>
> <minLength value='1'/>
> </restriction>
> </simpleType>
>
> Dommage que ce type ne soit pas "built in", mais il est vrai que les
> specs sont assez longues comme cela...
Oui!
>
> Encore merci
Un dernier conseil : sauf cas particulier (plus fréquent dans les
applications "orientées document" que dans les applications "orientées
données"), j'ai tendance à conseiller l'utilisation de xs:token (qui
comme son nom ne l'indique pas désigne une chaîne de caractères dont les
espaces sont "normalisés" au sens où l'entend XSLT) plutôt que celle de
xs:string (xs:token est plus cohérent avec tous les autres types de
données que xs:string qui est un cas particulier).
Dans votre cas précis, non-empty-string étant dérivé de string, aucune
normalisation ne sera appliquée avant le test de la facette minLength et
l'élément "<foo> </foo>" sera considéré comme valide (sa longueur est
1).
Si vous définissez au contraire :
<simpleType name='non-empty-token'>
<restriction base='token'>
<minLength value='1'/>
</restriction>
</simpleType>
la normalisation des espaces sera appliquée avant le test dYann
>
>
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
>
> Cette liste est a votre disposition pour discuter en francais de
> tout sujet technique lie a XML.
>
> Pour resilier votre abonnement, envoyez un message contenant
> la commande "unsubscribe" a xml-tech-request@xmlfr.org
> (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)e la facette
> minLength et "<foo> </foo>" ou même "<foo>
</foo>" seront invalides puisque leur longueur après normalisation est
0.
Cordialement,
Eric van der Vlist
--
Freelance consulting and training.
http://dyomedea.com/english/
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Thu Sep 16 13:19:36 2004