Yazılı xml yazılmamış xml karşılaştırın

Değişkenleri ve parametreleri sütunları oluşturabilirsiniz xmltürü. İsteğe bağlı olarak, bir değişkeni, parametre veya sütun xml şemaları topluluğu ilişkilendirebilirsiniz xmltürü. Bu durumda, xmlveri türü örneği adı verilir yazılmış. Aksi takdirde, xml örneği denir yazılmamış.

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

xmlVeri türü için ISO standardı uygulayan xmlveri türü. Bu nedenle, bu iyi biçimlendirilmiş xml 1.0 sürümü belgeleri ve ayrıca sözde xml içerik parçalarını metin düğümleri ve üst düzey öğeleri rasgele sayıda yazılmamış xml sütun içinde saklayabilirsiniz. Sistem verileri biçimlendirilmiş, sütun xml şemaları için kalmayı gerektirmez ve geniş anlamda iyi biçimlendirilmiş verileri reddeder denetler. Bu da yazılmamış xml değişken ve parametreler geçerlidir.

xml şemaları

Bir xml şeması aşağıdakileri sağlar:

  • Doğrulama kısıtlamaları. Yazılı xml örneğine atanmış veya değişikliğin zaman, SQL Server örneğinin doğrular.

  • Veri bilgileri yazın. Şemalar sağlar öğeler ve öznitelikler hakkında bilgi xmlveri türü örneği. Daha kesin operasyonel semantiği ile yazılmamış mümkün olandan örneğinde içerdiği değerlere türü hakkında bilgi sağlar xml. Örneğin, ondalık değer, ancak dize değeri ondalık aritmetik işlemler gerçekleştirilebilir. Bu nedenle, yazılı xml depolama yazılmamış xml önemli ölçüde daha küçük yapılabilir.

Yazdığınız seçerek veya yazılmamış xml

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

  • Şema, xml verileri yok.

  • Şemalar var, ama verileri doğrulamak için sunucu istemiyorum. Bu uygulama sunucudaki verileri depolamak önce istemci taraflı doğrulama yaptığında bazen durumda veya geçici olarak şemaya göre geçersiz veya desteklenmeyen şema bileşenleri sunucu kullanan xml verileri depolar.

Yazılan kullanım xml veri türü aşağıdaki durumlarda:

  • Sen-si olmak şemalar, xml verileri ve xml şemalarına göre xml verilerinizi doğrulamak için sunucuya istediğiniz.

  • Depolama ve sorgu en iyi duruma getirme türü bilgilere dayanarak yararlanmak istiyorum.

  • Tür bilgileri sorgularınızı derleme sırasında daha iyi yararlanmak istiyorum.

Yazılı xml sütunlar, parametreleri ve değişken xml belgeleri veya içerik saklayabilirsiniz. Ancak, bir bayrak, bir belge veya içerik bildirimi zamanında depoladığınız olup olmadığını belirtmek var. Buna ek olarak, xml şema koleksiyonu sağlamak zorunda. Her bir xml örneği tam olarak bir tane üst düzey öğesi varsa belge belirtin. Aksi durumda, içerik kullanın. Sorgu derleyici belge bayrak türü denetimlerinde sorgu derleme sırasında tek üst düzey öğeleri sonucuna kullanır.

Yazılı xml oluşturma

Önce sen-ebilmek yaratmak yazılı xmldeğişkenleri, parametre veya sütun, xml şema koleksiyonu kullanarak önce kaydetmelisiniz xml şema KOLEKSIYONU (Transact-sql) oluştur. Daha sonra değişkenler, parametre veya sütun ile xml şema koleksiyonu ilişkilendirebilirsiniz xmlveri türü.

Aşağıdaki örneklerde, xml şema koleksiyonu adı belirtmek için iki bölümlü adlandırma kuralı kullanılır. İlk bölümde AdventureWorks şema adı ve ikinci bölümü olan xml şema koleksiyonu adı.

Örnek: şema koleksiyonu bir xml türü değişkeni ile ilişkilendirme

Aşağıdaki örnek bir xml türü değişkeni ve bir şema koleksiyonu ile ilişkilendirir. Örnekte belirtilen şema koleksiyonu zaten içinde alınan AdventureWorks veritabanı.

DECLARE @x xml (Production.ProductDescriptionSchemaCollection) 

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

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

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

Örnek: xml türü parametre saklı bir yordam geçirmeden

Aşağıdaki örnek geçer bir xmlsaklı yordam parametre yazın ve değişken için bir şema belirtir:

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

Aşağıdaki xml şema koleksiyonu hakkında Not:

  • xml şema koleksiyonu yalnızca içinde kayıtlı kullanarak veritabanı kullanılabilir xml şema koleksiyonu oluşturma.

  • Eğer bir dizeden bir yazılı döküm xmlveri türü, ayrıştırma da gerçekleştirdiği doğrulama ve yazarak, Koleksiyon belirtilen xml şema ad alanları temel.

  • Yazılı artığını xmlveri türü için bir yazılmamış xmlveri türü tersi.

SQL Server'da xml oluşturmak için başka yollar hakkında daha fazla bilgi için bkz: xml veri örnekleri oluşturma. xml oluşturulan sonra o ya da atanabilir bir xmlveri değişkeni yazın veya depolanan xmlyazın sütunlar için ek işlem.

Veri türü hiyerarşisi içinde xmlveri türü görüldüğü sql_variantve kullanıcı tanımlı türler, ancak yerleşik türleri yukarıda.

Örnek: bir Typed xml sütun kısıtlamak esaslarını belirtme

Yazdığınız için xmlsütunları, sütun yalnızca tek, üst düzey öğeleri içinde görüneceği şekilde depolanan her örneği için izin kısıtlayabilirsiniz İsteğe bağlı belirterek, bunu DOCUMENTtablo oluşturulduğunda aşağıdaki örnekte gösterildiği gibi faset:

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

Varsayılan örneği depolanan yazılı xmlsütun xml içerik olarak ve xml belgeleri olarak depolanır. Bu, aşağıdakileri sağlar:

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

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

Ekleyerek bu davranışı da açıkça belirtmek CONTENTtarafı, aşağıdaki örnekte gösterildiği gibi:

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

İsteğe bağlı belge içerik esaslarını tanımladığınız her yerde belirleyebileceğiniz Not xmltürü (yazılı xml). Örneğin, oluşturduğunuzda bir yazılı xmldeğişken, belge içerik tarafı, aşağıda gösterildiği gibi ekleyebilirsiniz:

declare @x xml (DOCUMENT Production.ProductDescriptionSchemaCollection)

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

xmlVeri türü sütunlar, değişkenler ve parametreleri xml Şeması'nı kullanarak, ama dtd kullanmayan tarafından yazılabilecek. Ancak, satır içi dtd hem yazılı hem de yazılmamış xml varsayılan değerlerini sağlamak ve varlık başvuruları kendi genişletilmiş biçimiyle değiştirmek için kullanılır.

Üçüncü taraf araçları kullanarak xml şema belgeleri DTD dönüştürmek ve xml şemaları veritabanına yükleyebilirsiniz.

Yazılı xml SQL Server 2005, SQL Server 2008 yükseltme

SQL Server 2008birkaç uzantıları xml şemaya yapılan desteği, lax doğrulama desteği dahil gelişmiş işleme XS, xs: Time ve xs: DateTime örnek veri ve liste ve Birliği türleri için destek eklendi. Çoğu durumda değişiklikleri yükseltme deneyimini etkilemez. Ancak eğer bir xml şema koleksiyonu içinde kullanılan SQL Server 2005Bu tür değerler izin XS, xs: Time, veya xs: DateTime (veya herhangi bir alt tür) sonra eklediğiniz aşağıdaki yükseltme adımları ortaya, SQL Server 2005daha yeni veritabanına SQL Server:

  1. Her xml sütun için bu yazmış öğeleri veya olarak yazılan öznitelikleri içeren xml şema koleksiyonu ile xs: anyType, anySimpleType, XS veya onun alt türlerinden birini xs: Time ya da herhangi bir subtype, ya da xs: DateTime veya onun alt türlerinden birini veya Birliği olan ya da bu türlerinden herhangi birini içeren liste türleri şunlar:

    1. Tüm xml dizinler sütun üzerinde devre dışı bırakılacak.

    2. Tüm SQL Server 2005değerler will continue the z timezone içinde temsil edilmesi çünkü onlar z timezone normalleştirilmiş.

    3. Herhangi bir XS veya xs: DateTime dizin yeniden oluşturma veya bir XQuery veya xml dml deyimlerini alır 1 Ocak 1 yılın bir çalışma zamanı hatası neden daha küçük değerler bu değeri içeren xml veri türü karşı yürütülen.

  2. Herhangi bir negatif yıllarda XS veya xs: DateTime esaslarını veya varsayılan değerleri bir xml şema koleksiyonu içinde otomatik olarak güncelleştirilir Bankası tarafından izin verilen en küçük değer için XS veya xs: DateTime türü (örneğin, 0001-01-01T00:00:00.0000000Z için xs: DateTime).

Negatif yıllık içerse bile, hala bir sql select deyimi tüm xml veri türü almak için kullanabileceğinizi unutmayın. Bu size negatif yıl yerine, bir yıl içinde yeni desteklenen veya öğe türünü değiştirme veya öznitelik için tavsiye XS.

Ayrıca bkz.

Kavramlar

xml veri örnekleri oluşturma

xml veri değişikliği dili (xml dml)

DEL - Implementing XML in SQL Server

Sample XML Applications and Data

Diğer Kaynaklar

XML veri türü yöntemleri