2016-04-07 29 views
1

Bir etiketixs birimi: dateTime ve xs: string?

<xs:simpleType name="dateTime-or-string"> 
    <xs:union memberTypes="xs:dateTime xs:string"/> 
</xs:simpleType> 

<xs:complexType name="CustomDate"> 
      <xs:simpleContent> 
       <xs:extension base="dateTime-or-string"> 
        <xs:attribute name="nullable" type="xs:string" /> 
       </xs:extension> 
      </xs:simpleContent> 
</xs:complexType> 
<xs:element name="StartDate" type="CustomDate"> 

bu doğru değilse yardım edin için dize ve datetime biçimini hem de kabul etmek için XSD biçimi altında kullanıyorum.

Benim etiketi şöyle olacaktır: xs:dateTime yana

<lastdate nullable="true"/> or <lastdate>2015-08-05+02:00</lastdate> 
+0

bu size yardımcı olabilir - http://stackoverflow.com/questions/18796258/define-an-xsd-element-which-can-be-a-datetime-or-empty-with-an-attribute – Sampada

+0

Tek potansiyel komplikasyon: İsterseniz, 2015-08-05 + 02: 00 'bir tarih olarak eşleşmesi için, xs: xs: dateTime'da değil, birleşikte tarih isteyebilirsiniz. Ayrıca, türünüz 'nullable' diye adlandırılan bir özellik bildirmez - xsi: nil'yi mi düşünüyorsunuz? –

cevap

0

xs:string sıkı bir alt kümesidir, iki tip birlikte birliğe gerek yoktur. Sadece xs:string'u kendi başınıza kullanabilirsiniz.

+0

Geçerli olarak kabul edilen XML belgeleri kümesine göre doğru. Doğrulama, doğrulama işleminin (şema doğrulama valfı veya PSVI) oluşturduğu ve potansiyel olarak alt işlemcilerin kullanımına açık olan bilgilerle ilgili olarak doğru değildir: Doküman tüketicisi belgeleri bir sıraya yönlendirebilir veya bir şekilde işleyebilir. 'lastdate' değeri, xs: dateTime örneğidir ve farklı bir sıraya/başka şekilde farklı bir şekilde tanınır. Aynı zamanda şemadaki insan okuyucular için bir fark yaratabilir: beklentileri belirlemeye yardımcı olabilir. –

+0

Yani, (1) tamamen hayali (ama teorik olarak mümkün) PSVI işlemden yararlanmak istediğinizde, xs: dateTime ve xs: string' bir birleşimini kullanın veya (2) dateTime oughta git, ama, ne cehennem, bir dizgin iyi insandır. :-) – kjhughes

+0

Olman umduğun kadar etkilenmedin :), ama evet, galiba sende. PSVI işleminin hayali olduğuna emin değilim: Son baktığımda Xerces'in PSVI'ye erişim sağladığını düşündüm ve şemaya duyarlı XPath veya XSLT işlemcisi de “lastdate” öğesine farklı tipler atayacaktır. Ve gerçek dünyadaki kelime hazineleri bazen "eğer mümkünse xs: tarihini kullan, ve değerler uygun şekilde ele alınacaktır, tarih dışı dizeler geçerli olarak kabul edilecektir, çünkü başka seçeneğimiz yoktur, ancak bunlar işlenmeyecektir. tarih olarak. " –

İlgili konular