2010-08-23 7 views
1

J'ai un fichier xml avec un attribut qui ressemble à quelque chose comme ceci:Utiliser XSD pour valider une valeur CSV?

<Element attribute="1234,2345,3413,6532" /> 

je besoin d'un moyen de valider que la valeur d'attribut est une liste séparée par des virgules des entiers dans une certaine plage. Quelqu'un sait comment faire cela en utilisant XSD?

Merci!

Répondre

1

Cela devrait limiter les valeurs d'attributs à une liste séparée par des virgules entiers:

<xsd:element name="Element"> 
    <xsd:complexType> 
     <xsd:attribute name="attribute"> 
      <xsd:simpleType> 
       <xsd:restriction base="xsd:string"> 
        <xsd:pattern value="\d+(,\d+)*" /> 
       </xsd:restriction> 
      </xsd:simpleType> 
     </xsd:attribute> 
    </xsd:complexType> 
</xsd:element> 

Si la plage que vous mentionnez est assez simple, vous pourriez être en mesure d'exprimer que dans le RE, par exemple [1-9]\d{3} pour une Entier à 4 chiffres.

+0

Merci, cela me fait partie en partie. Et si la plage était quelque chose comme 0-183784. Cela serait difficile à valider en utilisant une expression régulière. Y a-t-il un autre moyen de le faire? J'ai déjà un type simple pour valider qu'un entier est dans la bonne gamme, est-il possible de combiner cela avec votre exemple? – user113164

Questions connexes