2009-12-14 11 views
5

ISO 8601'e benzer zaman damgası içeren XML üreten, ancak alanı tarih ve saati ayırmak için kullanılan eski bir sistemim var. Örneğin. 2009-12-31 00:00:00. Bu zaman damgaları için olası aralığı tanımlayan bir şema tanımlamak istiyorum. xsd:dateTime bu amaçla çok uygun olacaktır, ancak tarih ve saat arasındaki ayırıcı olarak T kullanır. Ayırıcıyı T'yi ayırıcı olarak kullanarak geri döndürmek için eski sistemi değiştiremiyorum.Farklı tarih ve saat ayırıcı kullanmak için xsd: dateTime basit türünü değiştir

xsd:dateTime'dan türeyen simpleType tanımına sahip olmanın bir yolu var mı, ancak ayırıcıyı mı değiştiriyor yoksa uygun bir kalıp ve okunabilir yorumlar içeren bir dizeye güvenmem gerekiyor mu?

Güncelleştirme: Anladığım kadarıyla, dateTime öğelerinin giriş için aralığını kısıtlamak üzere bir desen kullanabilir, ancak bu, ayırıcı karakterini değiştirmez.

Örnek:

<xs:restriction base="xs:dateTime"> 
    <xs:pattern value="[2].*:[0-9]{2}"/> 
</xs:restriction> 

Bu yalnızca 2000 ile başlayan yıllar ve fraksiyonel saniye ve saat dilimi bilgileri olmadan DateTime için izin verecek. cevaplar ait

Özet:

temel türü olarak xs:dateTime kullanmak mümkün değildir. Ancak xs:string'u kullanmak ve bir desen tanımlamak mümkündür.

<xs:restriction base="xs:string"> 
    <xs:pattern value="[0-9]{4}-[01][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-6][0-9]"/> 
</xs:restriction> 

elbette bir dize kullanarak, dil bağlamaları oluşturmak için şema kullanan herhangi bir otomatik araçları da bir dize alır, tarih/zaman için uygun dil türüne dönüşüm elle yapılmalıdır.

cevap

İlgili konular