Aracılığıyla paylaş


Kurallı formlar ve desen kısıtlamaları

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

XSD desen modeli, basit türlerin sözcüksel alanının kısıtlanmasına olanak tanır. Birden fazla olası sözcük temelli gösterimi olan bir türe desen kısıtlaması getirildiğinde, bazı değerler doğrulama sırasında beklenmeyen davranışlara neden olabilir.

Bu davranış, bu değerlerin sözcük temelli gösterimleri veritabanında depolanmadığından oluşur. Bu nedenle, değerler çıkış olarak seri hale getirildiğinde standart gösterimlerine dönüştürülür. Belge, kurallı formu türü için desen kısıtlamasına uymayan bir değer içeriyorsa, kullanıcı yeniden eklemeye çalışırsa belge reddedilir.

Bunu önlemek için SQL Server, kurallı formları tarafından desen kısıtlamalarının ihlali nedeniyle yeniden eklenmeyecek değerler içeren tüm XML belgelerini reddeder. Örneğin, "33.000" değeri, "33\.0+" desen kısıtlaması ile xs:decimal türünden türetilmiş bir türe göre doğrulanmaz. "33.000" bu desenle uyumlu olsa da, kurallı biçim olan "33" uyumlu değildir.

Bu nedenle, aşağıdaki temel türlerden türetilen türlere desen modellerini uygularken dikkatli olmalısınız: boolean, decimal, float, double, dateTime, time, date, hexBinary ve base64Binary. Bir şema koleksiyonuna bu tür bileşenler eklediğinizde SQL Server bir uyarı gönderir.

Kayan nokta değerlerinin hatalı seri hale getirilmesi benzer bir soruna sahiptir. SQL Server tarafından kullanılan kayan nokta serileştirme algoritması nedeniyle, benzer değerlerin aynı kurallı formu paylaşması mümkündür. Kayan nokta değeri serileştirilip yeniden eklendiğinde değeri biraz değişebilir. Nadir durumlarda, bu durum yeniden numaralandırma türü için aşağıdaki modellerden herhangi birini ihlal eden bir değere neden olabilir: numaralandırma, minInclusive, minExclusive, maxInclusive veya maxExclusive. Bunu önlemek için SQL Server, xs:float veya xs:double türlerinden türetilen ve serileştirilemeyen ya da yeniden eklenemeyen değerleri reddeder.

Ayrıca bakınız