Aracılığıyla paylaş


Klavyeyle yazılan XML Untyped XML'YE karşılaştırılması

, Değişkenleri ve parametreleri sütunlar oluşturabilirsinizxmlyazın.İsteğe bağlı olarak ilişkilendirme bir dizi değişkeni, parametre veya sütun, XML şemalarıxmlyazın.Böyle bir durumda,xmlveri türü örnek veriliryazılan.Aksi, XML örnek verilirtürlenmemiş.

İyi biçimlendirilmiş XML ve xml veri türü

The xml data type implements the ISO standard xml data type.Bu nedenle, iyi biçimlendirilmiş XML sürüm 1.0 belgeleri de so-called XML içerik parçalarını metin düğümü olan ve rastgele sayıda üst düzey öğeleri türlenmemiş bir XML sütun saklayabilirsiniz.Sistem verileri düzgün, sütun, XML şemaları için bağlı olmasını gerektirmez; genişletilmiş anlamda düzgün olmayan veriler reddeder, denetler.Türlenmemiş XML değişkenleri ve parametreleri de bu geçerlidir.

XML şemaları

Bir XML şeması, aşağıdakileri sağlar:

  • Doğrulama sınırlamaları. Yazılan bir xml örnek atanan veya değiştirilen her SQL Server örnek doğrular.

  • Veri bilgileri yazın. Şema öznitelikleri ve xmlveri türü örnek. öğe türleri hakkında bilgi sağlar. Daha kesin çalışma mantığı çok türlenmemiş ile olası örnek bulunan değerlere türü bilgileri sağlarxml.Örneğin, ondalık değer, ancak bir dize değeri ondalık aritmetik işlemleri gerçekleştirilebilir.Bu nedenle, yazılı XML depolama türlenmemiş XML önemli ölçüde daha küçük hale getirilebilir.

Typed seçme veya Untyped XML

Türlenmemiş kullanımıxmlAşağıdaki durumlarda veri türü:

  • Bir şema, XML verileri yok.

  • Şemaların vardır, ancak verileri doğrulamak için sunucu istiyorsunuz.Bu uygulama sunucudaki veriyi saklamak önce istemci taraflı doğrulamayı yaparken bazen olduğu veya geçici olarak şemaya göre geçersiz veya sunucuda desteklenmeyen şema bileşenlerini kullanan XML verilerini depolar.

Yazdığınız kullanımıxml Aşağıdaki durumlarda veri türü:

  • Uyarınca, XML şemaları, XML verileri doğrulamak için sunucu istediğiniz ve şemaların XML verileriniz için vardır.

  • Depolama ve en iyi duruma getirme hakkında bilgi türünü temel alan sorgu yararlanmak istiyor.

  • Sorgularınızı, derleme sırasında tür bilgileri daha iyi yararlanmak istiyor.

Yazılı XML sütunlar, Parametreler ve değişkenler, XML belgelerini veya içeriği depolayabilir.Ancak, bir bayrakla, belge veya içerik bildirim bir anda depolama olup olmadığını belirlemeniz gerekir.Ayrıca, sağlamak zorunda koleksiyon, XML şemaları.Her bir XML örnek bir üst düzey öğe varsa, DOCUMENT belirtin.Aksi durumda, içerik kullanın.Sorgu derleyici DOCUMENT bayrağı tek üst düzey öğeleri anlaması için sorgu derlenirken türü denetimlerinde kullanır.

Typed XML oluşturma

Önce oluşturabileceğiniz yazılanxmlsütun değişkenleri ve parametreleri kullanarak XML şema koleksiyon önce kaydetmelisinizXML SCHEMA koleksiyon (Transact-SQL) CREATE., Daha sonra XML şema koleksiyon değişkenleri, parametre veya sütun ilişkilendirebilirsinizxmlveri türü.

Aşağıdaki örneklerde, XML şemasını belirtmek için iki parçalı bir adlandırma kuralı kullanılan koleksiyon adı.İlk bölümü olanAdventureWorks XML şema koleksiyon adı. şema ad ve ikinci bölümü olan

Örnek: Değişken türü bir xml şema koleksiyon ilişkilendirme

The following example creates anxml type variable and associates a schema collection with it.Örnekte belirtilen şema koleksiyon zaten alınırAdventureWorks veritabanı.

DECLARE @x xml (Production.ProductDescriptionSchemaCollection) 

Örnek: Bir şema bir xml türü sütun için belirtme

Aşağıdaki örnek, bir tablo oluşturur birxmlyazın sütun ve sütun için bir şema belirtir:

CREATE TABLE T1(
 Col1 int, 
 Col2 xml (Production.ProductDescriptionSchemaCollection)) 

Örnek: Bir xml türü parametresi için bir saklı yordam iletme

Aşağıdaki örnekte geçen birxmltür parametresi için bir saklı yordam ve değişken için bir şema belirtir:

CREATE PROCEDURE SampleProc 
  @ProdDescription xml (Production.ProductDescriptionSchemaCollection) 
AS 

XML şema koleksiyon hakkında şunları unutmayın:

  • Bir XML şema koleksiyonu yalnızca veritabanındaki, kayıtlı olarak kullanılabilirBir XML şeması koleksiyon oluşturma.

  • Bir dizeden bir yazılı için atamaxmlveri türü, ayrıştırma de gerçekleştirir doğrulama ve yazarak XML şema ad belirtilen derlemedeki temel.

  • Gelen yazılı bir atamaxmltürlenmemiş bir veri türünexmlveri türü ve vice tersine.

SQL Server, XML oluşturmak için diğer yolları hakkında daha fazla bilgi için bkz:XML örnekleri oluşturma.Sonra XML oluşturulur, ya da atanabilir birxmlverileri yazın değişkeni veya saklananxmlTür sütunu ek işleme.

Veri türü hiyerarşisi içindekixmlveri türü görünür altındakisql_variantve kullanıcı tanımlı türler, ancak yerleşik türleri. Yukarıdaki

Örnek: Bir sütun yazılı xml oranları için özellikleri belirleme

İçin yazılanxmlsütun sütun it. içinde saklanan her örnek için üst düzey, yalnızca tek öğelere izin vermek için kısıtlayabilirsinizBu isteğe bağlı belirterek bunuDOCUMENTtablo oluşturulduğunda aşağıdaki örnekte gösterildiği gibi model:

CREATE TABLE T(Col1 xml 
   (DOCUMENT Production.ProductDescriptionSchemaCollection))
GO
DROP TABLE T
GO

Varsayılan olarak, örnek saklanan yazılıxmlsütun depolanan XML içeriğini ve değil olarak XML belgeleri.Bu aşağıdakileri sağlar:

  • Sıfır veya çok sayıda üst düzey öğeleri

  • Üst düzey öğeleri metin düğümleri

Ayrıca açıkça belirtebilirsiniz ekleyerek bu davranışıCONTENTmodel, aşağıdaki örnekte gösterildiği gibi:

CREATE TABLE T(Col1 xml(CONTENT Production.ProductDescriptionSchemaCollection))
GO -- Default

Unutmayın, isteğe bağlı DOCUMENT/içerik özellikleri herhangi bir yerde tanımladığınız belirtebilirsinizxmltürü (yazılı xml).Örneğin, oluşturduğunuzda bir yazılıxmldeğişken, DOCUMENT/içerik Faseta, aşağıdaki gösterildiği gibi ekleyebilirsiniz:

declare @x xml (DOCUMENT Production.ProductDescriptionSchemaCollection)

Belge türü tanımı (DTD)

The xml data type columns, variables, and parameters can be typed by using XML schema, but not by using DTD.Ancak, satır içi DTD türlenmemiş ve yazılı XML için varsayılan değerler sağlamak için ve varlýk baþvurularý, genişletilmiş formu değiştirmek için kullanılır.

Üçüncü taraf araçlarla DTD'ler XML şema belgelerine dönüştürmek ve XML şemaları veritabanına yükleyin.

Typed XML SQL Server 2008 için SQL Server 2005 ' yükseltme

SQL Server 2008 XML şeması desteği, ondan doğrulama desteği de dahil olmak üzere çeşitli uzantıları yapılan, işleme, iyileştirilmişxs:tarihxs:saat , xs:tarihTime örnek verileri ve liste ve birleşim türü. desteği eklendi Çoğu durumda, değişiklikleri yükseltme deneyimini etkilemez.Ancak SQL Server 2005 izin verilen değerler türündeki bir XML şema koleksiyon kullanıyorsanızxs:tarihxs:saat ve xs:tarihTime (or any subtype) sonra aşağıdaki yükseltme adımları SQL Server 2008'e, SQL Server 2005 veritabanı eklediğinizde oluşur:

  1. Her XML sütun için yazılı öğeleri içeren XML şema koleksiyon veya öznitelikleri olarak ya da yazılıxs:anyType, xs:anySimpleTypexs: tarih veya onun alt türlerinden, xs:saat veya nin bu durumdan, tüm alt veya xs:tarihTime veya onun alt türlerinden birini union olan veya bu türlerinden herhangi birini içeren bir liste türleri şunlar olur:

    1. Sütun, tüm XML dizinleri devre dışı bırakılacak.

    2. Z saat için Normalleştirilmiş için tüm SQL Server 2005 değerleri Z saat içinde temsil devam eder.

    3. Tümxs:tarih veya daha 1 Ocak 1 yılın xs:tarihTime değerlerini çalışma zamanı hatası için dizin yeniden oluşturma ya da bir XQuery alır veya XML DML deyimlerini, değeri. içeren XML veri türü karşı yürütülen neden olur

  2. Negatif bir yıl içindeXsxs:dateTime tarafları veya varsayılan değerleri bir XML şeması koleksiyonunda otomatik güncelleştirilmiştir ve temel Xsxs:dateTime türü (örneğin, xs:dateTime için 0001 - 01 - 01T00:00:00.0000000Z) tarafından izin verilen en küçük değer.

Negatif yıllık içerdiği bile, yine de basit bir SQL deyim tüm XML veri türleri, almak için kullanabileceğinizi unutmayın.Bu önerilir, negatif yıl yıl yeni desteklenen aralıkta değiştirmek veya öğe veya öznitelik için türünü değiştirinxs:dize.