2015-04-18 30 views
5

Belirli bir kısıtlamayı XML Şeması'na uygulamak istiyorum (üzerinde çok az deneyim var).XML şemasında zaman özniteliği için kısıtlama uygulama

Ben xsd:time türünde bir özelliği vardır: Ben yalnızca XML yarım saatlik zaman aralıklarında geçerli olacak şekilde bir kısıtlama uygulamak olduğunu etmek istiyorum ne

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

. Örneğin, 10:00, 12:30, 15:30, 20:00, saat özniteliği için geçerli değerler olabilir, ancak 10:45, 11:12, 15:34 vb.

Bunu nasıl başarabilirim? Aramam işe yarar bir şey vermedi.

Önceden teşekkür ederiz.

cevap

3

Saatinizi bu şekilde tanımlayabilirsiniz.

<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> 

veya

<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

baz değeri XSD öneki edilmelidir. Buna ek olarak, bu basitleştirici ifadesini kullanmanın hala işe yaradığını düşünüyorum. .. :(0 | 3) 0: 00' – sergioFC

+0

Bu konuda bir cevap verebilir misiniz? Güzel olacak! :) –

+0

@sergioFC İfadeyi basitleştirmeyi düşündüm ama çözümünüz bu değere 24:00:00, 00: 00: 0 izin veriyor, sanırım bu biraz belirsiz. Her iki çözüm de doğru, ve eksik xs: zaman benim hatam :) – Xstian

İlgili konular