Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sınıfın XmlSchemaInference öznitelikler ve öğeler için veri türünü nasıl çıkardığı açıklanır.
sınıfı, XmlSchemaInference öznitelikler ve öğeler için veri türünü basit türler olarak çıkarsar. Bu bölümde olası çıkarılmış türler, birden çok farklı değerin tek bir türle nasıl mutabık olduğu ve şema tanımlama xsi özniteliklerinin nasıl işleneceğini açıklar.
Çıkarsanan Türler
sınıfı, XmlSchemaInference öğe ve öznitelik değerlerini basit türler olarak çıkarsar ve sonuçta elde edilen şemaya bir tür özniteliği ekler. Tüm çıkarsanan türler basit türlerdir. Sonuçta elde edilen şemanın parçası olarak hiçbir temel tür veya model dahil değildir.
Değerler, XML belgesinde karşılaşıldıkları gibi ayrı ayrı incelenir. Bir değer incelendiğinde, tipi çıkarılır. Bir öznitelik veya öğe için bir tür çıkarsandıysa ve öznitelik veya öğe için o anda çıkarılmış türle eşleşmeyen bir değerle karşılaşılırsa, XmlSchemaInference sınıf bir kural kümesinin her biri için türü yükselter. Bu kurallar, bu konunun devamında yer alan Tür Yükseltme bölümünde ele alınmıştır.
Aşağıdaki tabloda, sonuçta elde edilen şema için olası çıkarım türleri listelenmiştir.
| Basit Tür | Açıklama |
|---|---|
| Boolean | Doğru, yanlış, 0, 1. |
| bayt | –128 ile 127 aralığındaki tamsayılar. |
| işaretsiz bayt (unsignedByte) | 0 ile 255 arasında tamsayılar. |
| kısa | –32768 ile 32767 aralığındaki tamsayılar. |
| işaretsizKısa | 0 ile 65535 aralığındaki tamsayılar. |
| Int | –2147483648 ile 2147483647 aralığındaki tamsayılar. |
| işaretsiz tam sayı | 0 ile 4294967295 aralığındaki tamsayılar. |
| uzun | –9223372036854775808 ile 9223372036854775807 aralığındaki tamsayılar. |
| işaretsiz uzun | 0 ile 18446744073709551615 aralığındaki tamsayılar. |
| tamsayı | Büyük olasılıkla "-" ön ekiyle ön ekli sonlu basamak sayısı. |
| ondalık | 0'dan 28'e kadar basamak duyarlığa sahip sayısal değerler. |
| yüzmek | Ondalık sayılar isteğe bağlı olarak “E” veya “e” harfinin ardından üssü temsil eden bir tamsayı değeriyle takip edilebilir. Ondalık değerler, 16777216 -16777216 aralığında olabilir. Üs değerleri –149 ile 104 arasında olabilir. Float, özel değerlerin sonsuz ve sayısal olmayan değerleri temsil etmesine olanak tanır. Float için özel değerler şunlardır: 0, -0, INF, -INF, NaN. |
| iki katı | Ondalık değerlerin -9007199254740992 ile 9007199254740992 arasında olabilmesi hariç float ile aynı ve üs değerleri –1075 ile 970 arasında olabilir. Double, özel değerlerin sonsuz ve sayısal olmayan değerleri temsil etmesine olanak tanır. Float için özel değerler şunlardır: 0, -0, INF, -INF, NaN. |
| süre | W3C süre biçimi. |
| tarih ve saat | W3C dateTime biçimi. |
| Zaman | W3C saat biçimi. |
| tarih | Yıl değerleri 0001'den 9999'a kısıtlanmıştır. |
| gYearMonth | W3C Gregoryen ay ve yıl biçimi. |
| String | Bir veya daha fazla Unicode karakteri. |
Tip Terfisi
sınıfı, XmlSchemaInference öznitelik ve öğe değerlerini birer birer inceler. Değerlerle karşılaşıldığında, en kısıtlayıcı, imzasız tür türetilir. Bir öznitelik veya öğe için tür çıkarsandıysa ve o anda çıkarılmış türle eşleşmeyen yeni bir değerle karşılaşılırsa, çıkarılan tür hem o anda çıkarılmış tür hem de yeni değer için geçerli olan yeni bir türe yükseltilir. sınıfı, XmlSchemaInference çıkarsanan türü yükseltme sırasında önceki değerleri dikkate alır.
Örneğin, iki XML belgesinden aşağıdaki XML parçalarını göz önünde bulundurun:
<MyElement1 attr1="12" />
<MyElement1 attr1="52344" />
İlk attr1 değerle karşılaşıldığında, attr1 değerine göre unsignedByte türü 12 olarak belirlenir. İkinci attr1 ile karşılaşıldığında, tür unsignedShort'nin şu anda çıkarılmış türüne ve geçerli değer unsignedByte'e dayanarak 52344 olarak yükseltilir.
Şimdi iki XML belgesinden aşağıdaki XML'yi göz önünde bulundurun:
<MyElement2 attr2="0" />
<MyElement2 attr2="true" />
İlk attr2 değerle karşılaşıldığında, attr2 değerine göre unsignedByte türü 0 olarak belirlenir. İkinci attr2 ile karşılaşıldığında, tür, string sınıfının çıkarılmış türü yükseltirken önceki değerleri dikkate alması nedeniyle, şu anda çıkarılan unsignedByte türüne ve mevcut true değerine dayanarak XmlSchemaInference'e yükseltilir. Ancak, her iki örnek de attr2 iki farklı XML belgesinde değil, yukarıda gösterildiği gibi aynı XML belgesinde karşılaşılırsa, attr2 olarak boolean çıkarılırdı.
Ad alanından https://www.w3.org/2001/XMLSchema-instance öznitelikler yoksayıldı
Aşağıda, şema çıkarımı sırasında göz ardı edilen şema tanımlayıcı öznitelikler yer alır.
| Özellik | Açıklama |
|---|---|
xsi:type |
Eğer xsi:type ile belirtilmiş bir öğeyle karşılaşılırsa, xsi:type öğesi yoksayılır. |
xsi:nil |
Özniteliği olan bir xsi:nil öğeyle karşılaşılırsa, çıkarılmış şemadaki öğe bildiriminin nillable="true"değeri vardır. özniteliği olarak xsi:nil ayarlanmış bir true öğenin alt öğeleri olamaz. |
xsi:schemaLocation |
Eğer xsi:schemaLocation ile karşılaşılırsa, yoksayılır. |
xsi:noNamespaceSchemaLocation |
Eğer xsi:noNamespaceSchemaLocation ile karşılaşılırsa, yoksayılır. |