2009-06-26 32 views

risposta

9

Si può sempre definirlo come un tipo semplice ristretta sulla base di una stringa, limitato da un'espressione regolare:

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

Se si desidera ottenere molto intelligente, è possibile modificare l'espressione regolare per essere ancora più di una partita per una data (ad esempio, contiene le informazioni che mese può essere solo 01-12 e così via):

<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 Sapevo questa espressione ma ho pensato che non fosse la strada giusta. Ho pensato di dover estendere xs: date e sovrascrivere il formato. –

+0

Abbastanza onestamente, non ho mai pensato di limitare xs: date o xs: dateTime, e impostando un pattern - non sono sicuro se funzionerà - provatelo! –

+3

Non è possibile estendere un tipo semplice (non tramite xs: estensione) e non è possibile limitare il fatto che qualcosa non sia valido come parte della base. Una data formattata 'yyyymmdd' non è una xs valida: date (richiede il formato 'yyyy-mm-dd') quindi è necessario qualcosa come la soluzione di marc_s –

-2

Se si desidera che il formato di MM/DD/YY YY in xml quindi questo codice può aiutarti per questo formato

<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

tenta di eseguire questo –

+0

@SamirVasani, non pensavo che gli schemi XML supportassero elementi di ancoraggio come^e $ quando si verifica il modello. Hai testato il tuo suggerimento? –