2009-06-26 8 views

Répondre

9

Vous pouvez toujours définir comme un type simple restreint basé sur une chaîne, limitée par une expression régulière:

<xs:simpleType name="FormattedDateType"> 
    <xs:restriction base="xs:string"> 
     <xs:pattern value="\d{8}"/> 
    </xs:restriction> 
</xs:simpleType> 

Si vous voulez vraiment intelligent, vous pouvez modifier l'expression régulière pour être encore plus d'un match pour une date (par exemple, contient les informations de ce mois ne peut être 01-12 et ainsi de suite):

<xs:simpleType name="FormattedDateType"> 
    <xs:restriction base="xs:string"> 
     <xs:pattern value="\d{4}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])"/> 
    </xs:restriction> 
</xs:simpleType> 

Marc

+0

Marc que je connaissais cette expression mais je pensais que ce ne est pas la bonne façon. Je pensais que je devais étendre xs: date et remplacer le format. –

+0

Tout à fait honnêtement, je n'ai jamais pensé à restreindre xs: date ou xs: dateTime, et en définissant un modèle - pas sûr que ça marchera - essayez-le! –

+3

Vous ne pouvez pas étendre un type simple (pas via xs: extension) et vous ne pouvez pas restreindre quelque chose pour qu'il ne soit pas valide dans le cadre de la base. Une date formatée 'aaaammjj' n'est pas une date xs: valide (elle nécessite le format 'aaaa-mm-jj') donc vous avez besoin de quelque chose comme la solution de marc_s –

-2

Si vous voulez que le format MM/JJ/AA AA xml alors ce code peut vous aider pour ce format

<xs:element name="StartDate"> 
    <xs:simpleType> 
     <xs:restriction base="xs:string"> 
     <xs:pattern value="\d{2}[/]\d{2}[/]\d{4}"/> 
    <xs:length value="10"/> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:element> 
+0

\t \t \t \t \t \t \t \t

+0

Essayez d'exécuter cette –

+0

@SamirVasani, je ne pensais pas que les schémas XML supportaient les éléments d'ancrage comme^et $ lors de la correspondance de modèles. Avez-vous testé votre suggestion? –