Aracılığıyla paylaş


Kanonik formlar ve desen sınırlamaları

xsd desen tarafı için basit türler sözlü alanı kısıtlaması sağlar. Desen kısıtlama için birden fazla olası sözlü temsili olan bir tür koyduğunuzda, bazı değerleri üzerine doğrulama beklenmedik davranışlara neden olabilir.

Bu davranışın nedeni, bu değerlerin sözlü beyan veritabanında saklanmaz. Bu nedenle, değerleri ne zaman çıktı olarak sıralanmış kurallı kendi tanıtımlarını dönüştürülür. Bir belge olan kurallı formu ile desen kısıtlama türü için uygun olmayan bir değer içeriyorsa, kullanıcı bu yeniden dener belge reddedilir.

Bunu önlemek için SQL Server, desen sınırlamaları tarafından kanonik formlarını ihlali nedeniyle reinserted can't değerleri içeren herhangi bir xml belgesini reddeder. Örneğin, değer "33.000" türetilen bir tür karşı doğrulamaz xs: decimal "33\.0+" bir desen kısıtlaması ile. Her ne kadar "33.000" Bu model, "33" kurallı formu ile uyumludur, yok değil.

Aşağıdaki basit türleri türetilmiş türleri desen esaslarını uyguladığınızda bu nedenle dikkatli olmalıdır: boolean, decimal, float, double, dateTime, time, date, hexBinary, ve base64Binary. SQL Serverşema koleksiyonu için böyle bir bileşen eklediğinizde bir uyarı verir.

Kayan nokta değerlerinin imprecise serileştirmek benzer bir sorun vardır. Kayan nokta türü seri hale getirme algoritması tarafından kullanılan nedeniyle SQL Server, benzer değerleri aynı kanonik form paylaşmak mümkün. Bir kayan nokta değeri seri ve sonra reinserted değerini biraz değişebilir. Nadir durumlarda, bu biri için reinsertion türüne aşağıdaki esaslarını ihlal eden bir değer sonuçlanabilir: numaralandırma, minInclusive, minExclusive, maxInclusive, veya maxExclusive. Bunu önlemek için SQL Servertüretilmiş türlerinden herhangi değerleri reddeder xs:floatya xs:double, serileştirilmiş olamaz ve reinserted.

Ayrıca bkz.

Başvuru

Gereksinimleri ve xml şema koleksiyonları sunucu üzerindeki kısıtlamaları