2015-04-18 14 views
5

Desidero applicare una restrizione specifica a uno schema XML (su cui ho poca esperienza).Applicare la restrizione all'attributo time in XML Schema

Ho un attributo del xsd:time Tipo:

<xsd:attribute name="hour" type="xsd:time" use="required"/> 

Quello che voglio ad applicare è una limitazione in modo che l'XML sarà valida solo su intervalli di tempo di mezz'ora. Ad esempio, 10:00, 12:30, 15:30, 20:00 sarebbero valori validi per l'attributo dell'ora ma 10:45, 11:12, 15:34 ecc.

Come posso ottenere questo risultato? La mia ricerca non ha dato qualcosa di utile.

Grazie in anticipo.

risposta

3

Si potrebbe definire il tempo in questo modo.

<xsd:attribute name="hour" type="Time" use="required"/> 

<xsd:simpleType name="Time"> 
    <xsd:restriction base="xsd:time"> 
     <xsd:enumeration value="00:00:00"/> 
     <xsd:enumeration value="00:30:00"/> 
     <xsd:enumeration value="01:00:00"/> 
     <xsd:enumeration value="01:30:00"/> 
     <xsd:enumeration value="02:00:00"/> 
     <xsd:enumeration value="02:30:00"/> 
     <xsd:enumeration value="03:00:00"/> 
     <xsd:enumeration value="03:30:00"/> 
     <!-- etc etc --> 
    </xsd:restriction> 
</xsd:simpleType> 

o

<xsd:simpleType name="Time"> 
    <xsd:restriction base="xsd:time"> 
     <xsd:pattern value="((0[0-9]|1[0-9]|2[0-3]):[0|3][0]:[0][0])"/> 
    </xsd:restriction> 
</xsd:simpleType> 
+2

Il valore della base devono avere il prefisso xsd. Inoltre, penso che usando questa espressione regolare sarebbe ancora funzionante '.. :(0 | 3) 0: 00' – sergioFC

+0

Potresti fornire una risposta su questo? Sarebbe carino! :) –

+0

@sergioFC Avevo pensato di semplificare l'espressione ma, la tua soluzione consente questi valori 24:00:00, 00: 00: 0, penso che sia un po 'ambiguo. Ad ogni modo entrambe le soluzioni sono giuste, e manca 'xs: time' colpa mia :) – Xstian

Problemi correlati