Aracılığıyla paylaş


XML biçimi dosyaları için şema sözdizimi

Bu bölüm, XML biçimi dosyalarının sözdizimini açıklar.Sözdizimi, gerçek XML biçimi dosyaları nasıl karşılık gelen görmek için bkz: Örnek XML biçimi dosyaları. Bu bölümde toplu alma kullanma şeklini de dikkate <SATIR> ve <SÜTUN> öğeleri ve veri kümesi bir öğesi xsi: type değeri koymak nasıl.

XML kullanabileceğiniz biçim dosyası ile bir Kullanımıbcp komutu, INSERT deyim TOPLU veya INSERT... SELECT * FROM OPENROWSET(BULK...) deyim.

Not

Değiştirebileceğiniz bildirmek için bir biçim dosyası, numarası ve/veya alanların sırasını sayı ve/veya tabloda sütunların sırasını farklı bir veri dosyasından alma yığın.Daha fazla bilgi için bkz:Alanlar, toplu alma sırasında sütun eşlemek için bir biçim dosyası'nı kullanma.

XML şemasının temel sözdizimi

Yalnızca öğeleri (Bu sözdizimini ifadeleri göster<bcpformat>, <KAYIT>, <alan>, <SATIR>, ve <SÜTUN>) ve temel öznitelikleri.

<bcpformat...>

   <RECORD>

      <FIELD ID = "fieldID" xsi:type = "fieldType" [...]

      />

   </RECORD>

   <ROW>

      <COLUMN SOURCE = "fieldID" NAME = "columnName" xsi:type = "columnType" [...]

      />

   </ROW>

</ bcpformat>

Not

Değeri xsi:'Type [NULL]'ile ilişkili ek öznitelikleri bir <alan> veya <SÜTUN> öğe, bu konunun ilerisinde açıklanmıştır.

Şema öğeleri'nin açıklaması

Bu bölümde, her öğe için XML biçimi dosyaları XML şeması tanımlayan amacını özetler.Öznitelikleri ayrı bir bu konunun ilerleyen bölümlerinde açıklanmıştır.

  • <bcpformat>
    Bir tablo satırının tablosundaki belirli bir veri dosyası, yazılı yanıtlar ve kayıt yapısını tanımlayan biçim dosyasını öğedir.

  • <KAYIT... />
    Bir veya daha fazlasını içeren karmaşık bir öğe tanımlar. <alan> öğeleri. Alanların bir biçim dosyasında bildirilen bu alanlara veri dosyasında göründüğü sırayı sıradır.

  • <ALAN... />
    alan veri içeren veri dosyasında tanımlar.

    Bu öğenin özniteliklerini ele alınmıştır "öznitelikleri, <alan>Öğe,"Bu konunun ilerleyen bölümlerindeki.

  • <SATIR... />
    Bir veya daha fazlasını içeren karmaşık bir öğe tanımlar. <SÜTUN> öğeleri. Sırasını <SÜTUN> öğe sırasını, bağımsız <alan> öğeleri bir RECORD tanımı. Bunun yerine, sırasını <SÜTUN> bir Biçim dosyasındaki öğeleri, sonuç kümesi sütun sırasını belirler. Veri alanları, sırayla yüklenir karşılık gelen <SÜTUN> öğe içinde bildirilen <SÜTUN> Öğe.

    Daha fazla bilgi için bkz: "nasıl toplu alma kullanır <SATIR>Öğe,"Bu konunun ilerleyen bölümlerindeki.

  • <SÜTUN>
    Bir sütunu bir öğe () tanımlar.<SÜTUN>). Her <SÜTUN> öğe karşılık gelen bir <alan> öğe (KAYNAK özniteliğinde belirtilen, ID <SÜTUN> öğe).

    Bu öğenin özniteliklerini ele alınmıştır "öznitelikleri, <SÜTUN>Öğe,"Bu konunun ilerleyen bölümlerindeki. Ayrıca bkz: "nasıl BULK ımport kullanan <SÜTUN>Öğe,"Bu konunun ilerleyen bölümlerindeki.

  • </ bcpformat>
    biçim dosyası sona erdirmek için gereklidir.

Öznitelikleri <alan> Öğe

Bu bölüm özniteliklerini açıklayan <alan> öğe, aşağıdaki şema sözdiziminde özetlenmiştir:

<alan

   ID ="fieldID"

   xsi**:**type ="fieldType"

   [ LENGTH ="n" ]

   [ PREFIX_LENGTH ="p" ]

   [ MAX_LENGTH ="m" ]

   [ COLLATION ="collationName" ]

   [ TERMINATOR ="terminator" ]

/>

Her <alan> öğe diğerleri bağımsızdır. alan, aşağıdaki öznitelikleri açısından açıklanmıştır:

ALAN öznitelik

Açıklama

Isteğe bağlı /

Gerekli

ID ="fieldID"

Mantıksal adını belirtir alan veri dosyasında.Alan KIMLIĞI, alana başvurmak için kullanılan anahtardır.

<ALAN KİMLİĞİ="fieldID" / > < için SÜTUN KAYNAK eşlemeleri="fieldID"/>

Gerekli

xsi:type ="fieldType"

Bu, XML, örnek öğenin türünü tanımlar (öznitelik gibi kullanılır) yapısı.Değeri fieldType Belirli bir örneğinde isteğe bağlı bir öznitelik (altında), gereken belirler.

(Bağlı veri türü) gerekli

LENGTH ="n"

Bu öznitelik, sabit uzunluklu veri türünün örnek için uzunluğunu tanımlar.

Değeri n pozitif bir tamsayı olmalıdır.

Isteğe bağlı değilse, xsi: type değeri gerekli

PREFIX_LENGTH ="p"

Bu öznitelik, ikili veri gösterimi için önek uzunluğu tanımlar.PREFIX_LENGTH değeri p, aşağıdakilerden biri olmalıdır: 1, 2, 4 veya 8.

Isteğe bağlı değilse, xsi: type değeri gerekli

MAX_LENGTH ="m"

Bu öznitelik en fazla belirli bir alanda depolanan bayt sayısıdır.Hedef tablo, sütunun en büyük uzunluk verilir.MAX_LENGTH öznitelik en fazla uzunluk olan bir çıkış karakteri sütunu, sütun değeri için ayrılan depolama sınırlama kısıtlar.OPENROWSET işlevin BULK seçeneği, bir SELECT FROM yan tümcesinde kullanıldığında bu özellikle kullanışlıdır.

Değeri m pozitif bir tamsayı olmalıdır. Varsayılan olarak, 8000 karakterden için en fazla uzunluk olan bir Karakter sütun ve bir 4000 karakternchar sütun.

Isteğe bağlı

COLLATION ="collationName"

Yalnızca harmanlama karakter alanları için izin verilir.SQL Harmanlaması adlarının listesi için bkz: Name (Transact-SQL) SQL Server harmanlama.

Isteğe bağlı

SONLANDIRICI = "terminator"

Bu öznitelik, bir Veri alanının Sonlandırıcı belirtir.Sonlandırıcı, herhangi bir karakter olabilir.Sonlandırıcı, verileri bir parçası olan benzersiz bir karakter olmalıdır.

Varsayılan olarak, alan ayırıcısı (\t gösterilen) sekmesini karakterdir.Bir paragraf işareti temsil etmek için , \r\n Ek Yardım düğmesini kullanın.

Xsi: yalnızca bir Type gerektiren bu karakter veri ile kullanılan öznitelik

Xsi:type değerlerini <alan> Öğe

XML xsi: type değeri olan bir öğenin örneğini veri türünü tanımlar (öznitelik gibi kullanılır) yapısı.Kullanma hakkında bilgi için "xsi: type değeri, bir veri koyma küme," daha sonra bu bölümdeki.

Xsi: type değerini <alan> öğe, aşağıdaki veri türlerini destekler.

<alan> xsi: type değerleri

Gereken XML öznitelik(s)

Veri türü için

Isteğe bağlı bir XML öznitelik(s)

Veri türü için

NativeFixed

LENGTH

Yok.

NativePrefix

PREFIX_LENGTH

max_length

CharFixed

LENGTH

HARMANLAMA

NCharFixed

LENGTH

HARMANLAMA

CharPrefix

PREFIX_LENGTH

max_length, HARMANLAMA

NCharPrefix

PREFIX_LENGTH

max_length, HARMANLAMA

CharTerm

TERMINATOR

max_length, HARMANLAMA

NCharTerm

TERMINATOR

max_length, HARMANLAMA

For more information about Microsoft SQL Server data types, see (Transact-SQL) veri türleri.

Öznitelikleri <SÜTUN> Öğe

Bu bölüm özniteliklerini açıklayan <SÜTUN> öğe, aşağıdaki şema sözdiziminde özetlenmiştir:

<SÜTUN

KAYNAK = "fieldID"

AD = "columnName"

xsi: type = "columnType"

UZUNLUĞU = "n"

DUYARLIK = "n"

ÖLÇEK = "value"

NULL = {"YES"

"HAYIR"}]

/>

Bir sütuna hedef alan eşleştirilmiş tablo aşağıdaki öznitelikleri kullanarak:

SÜTUN özniteliği

Açıklama

Isteğe bağlı /

Gerekli

SOURCE ="fieldID"

sütun eşleştirilmiş alan KIMLIĞINI belirtir.

<SÜTUN KAYNAK="fieldID"/> maps to <alan ID="fieldID"/>

Gerekli

AD = "columnName"

Satır, sütun adını belirtir küme biçimi dosyası tarafından temsil edilen.Bu sütun adı, sonuç kümesinde sütun tanımlamak için kullanılır ve onu hedef kullanılan sütun adının karşılık değil tablo.

Gerekli

xsi:type ="ColumnType"

Bu, XML, öğenin örnek veri türünü tanımlar (öznitelik gibi kullanılır) yapısı.Değeri ColumnType Belirli bir örneğinde isteğe bağlı bir öznitelik (altında), gereken belirler.

NoteNote:
Olası değerleri ColumnType ve ilişkili öznitelikleri sonraki tablosunda listelenmiştir.

Isteğe bağlı

LENGTH ="n"

Sabit uzunluklu veri türünün örnek için uzunluğunu tanımlar.Xsi: type'yalnızca bir dize veri türü, UZUNLUK kullanılır.

Değeri n pozitif bir tamsayı olmalıdır.

Isteğe bağlı (xsi: type bir dize veri türü ise kullanılabilir)

PRECISION ="n"

Bir sayıda basamak sayısını gösterir.Örneğin, 123.45 sayı 5 bir duyarlılığa vardır.

Değer, pozitif bir tamsayı olması gerekir.

Isteğe bağlı (xsi: type değişken sayı veri türü ise kullanılabilir)

SCALE ="int"

Bir sayı ondalık virgülün sağındaki basamak sayısını gösterir.Örneğin, 123.45 numarası 2 ölçeği vardır.

Değer bir tamsayı olmalıdır.

Isteğe bağlı (xsi: type değişken sayı veri türü ise kullanılabilir)

NULL = { "YES"

"NO" }

Bir sütun null değerleri kabul edilebilir olup olmadığını gösterir.Bu öznitelik ALANLARı tümüyle bağımsızdır.Bir sütun NULLABLE değil ve (herhangi bir değer belirterek değil), null alan belirtir, ancak bir çalışma zamanı hatası oluşur.

Isteğe bağlı (herhangi bir veri türü için kullanılabilir)

Xsi:type değerlerini <SÜTUN> Öğe

XML xsi: type değeri olan bir öğenin örneğini veri türünü tanımlar (öznitelik gibi kullanılır) yapısı.Kullanma hakkında bilgi için "xsi: type değeri, bir veri koyma küme," daha sonra bu bölümdeki.

The <sütun> element supports native SQL data types, as follows:

Türü kategori

<SÜTUN> Veri türleri

Gereken XML öznitelik(s)

Veri türü için

Isteğe bağlı bir XML öznitelik(s)

Veri türü için

Sabit

SQLBIT, SQLTINYINT, SQLSMALLINT, SQLINT, SQLBIGINT, SQLFLT4, SQLFLT8, SQLDATETIME, SQLDATETIM4, SQLDATETIM8, SQLMONEY, SQLMONEY4, SQLVARIANT, ve SQLUNIQUEID

Yok.

NULL

Değişken numarası.

SQLDECIMAL ve SQLNUMERIC

Yok.

NULL, DUYARLIK, ÖLÇEK

lob

SQLIMAGE, CharLOB, SQLTEXT, ve SQLUDT

Yok.

NULL

Karakter LOB

SQLNTEXT

Yok.

NULL

Ikili dize

SQLBINARY ve SQLVARYBIN

Yok.

NULL, UZUNLUĞU

Karakter dizesi

SQLCHAR, SQLVARYCHAR, SQLNCHAR, ve SQLNVARCHAR

Yok.

NULL, UZUNLUĞU

Important noteImportant Note:

Verme toplu veya SQLXML veri almak için aşağıdaki veri türlerinden birini kullanmak, biçim dosyası: SQLCHAR SQLVARYCHAR (verileri istemci kod sayfa veya kod sayfa tarafından harmanlama örtük olarak gönderilir), SQLNCHAR veya SQLNVARCHAR, (veri Unicode olarak gönderilir) SQLBINARY veya SQLVARYBIN (herhangi bir dönüştürme verilerin gönderildiği).

Daha fazla bilgi için SQL Server veri türleri için bkz: (Transact-SQL) veri türleri.

Nasıl toplu alma kullanır &lt;SATIR&gt; Öğe

Olup olmadığını <SATIR> öğe etkileri toplu alma işlemi, işlem gerçekleştirilen bağlıdır:

  • the bcp command

    Bir hedef veri ne zaman yüklenen tablo, Kullanımıbcp < > SATıR bileşeni yok sayar. Bunun yerine, Kullanımıbcp verileri hedef tablo sütun türlerine göre yükler.

  • Transact-SQL ifade (BULK INSERT ve OPENROWSET'ın toplu satır kümesi sağlayıcı)

    Zaman verilerini alma toplu bir tablo, Transact-SQL ifadeleri kullanma <SATIR> Giriş satır kümesi oluşturmak için Bileşen'ı tıklatın. Ayrıca, Transact-SQL ifadeleri altında belirtilen sütun türlerini temel alan uygun türü dönüşümlerinin gerçekleştir <SATIR> ve karşılık gelen sütun hedef tablo. Sütun türleri arasında bir uyuşmazlık varsa Biçim dosyasında ve hedef belirtilen tablo, bir ek türü dönüştürme oluşur.Bu ek türü dönüştürme davranış BULK INSERT veya OPENROWSET'ın toplu satır kümesi sağlayıcı karşılaştırıldığında bazı tutarsızlık (diğer bir deyişle, duyarlılık kaybı) neden olabilir Kullanımıbcp.

    Bilgiler, <SATIR> öğenin herhangi bir bilgi istemeden oluşturulması bir satır sağlar. Bu nedenle, bir deyim kullanarak satır kümesi kümesi oluşturabilir (SELECT * FROM OPENROWSET (BULK datafile formatfile =xmlformatfile).

    Not

    OPENROWSET BULK yan tümce biçiminde bir dosyayı gerektirir (veri türünden diğerine dönüştürme Not alan veri türü sütun yalnızca XML biçimli bir dosya ile kullanılabilir).

Nasıl BULK ımport kullanan &lt;SÜTUN&gt; Öğe

Toplu bir tabloya veri alma için <SÜTUN> öğeleri bir biçim dosyası belirterek, bir veri dosyası alan için tablo sütunları eşleştirmek:

  • Veri dosyasındaki satırı içindeki her alan konumu.

  • Alan veri türü istenen sütun veri türüne dönüştürmek için kullanılan sütun tipi.

Hiçbir sütun için bir alan eşlenmişse, alan içinde oluşturulmuş olan satırları kopyalanmaz.Bu davranış, farklı (tablolardaki sütunlarla farklı) satırlarını oluşturmak bir veri dosyasına verir.

Benzer şekilde, toplu bir tablodan verileri vermek için her <SÜTUN> içinde biçim dosyası giriş tablosu satırındaki çıktı dosyasında veri alanına karşılık gelen sütuna eşleştirir.

Xsi: type değeri, bir veri yerleştirme küme

Bir XML belgesi ile XML şema tanımı (XSD) dil doğrulandığında, xsi: type değeri verileri konur küme.Ancak, XML dosya biçiminde (örneğin, bir XML belgesine yükleyerek xsi: type bilgileri veri kümesi içine yerleştirebilirsiniz myDoc), aşağıdaki kod parçacığının içinde gösterildiği gibi:

...;
myDoc.LoadXml(xmlFormat);
XmlNodeList ColumnList = myDoc.GetElementsByTagName("COLUMN");
for(int i=0;i<ColumnList.Count;i++)
{
   Console.Write("COLUMN: xsi:type=" +ColumnList[i].Attributes["type",
      "http://www.w3.org/2001/XMLSchema-instance"].Value+"\n");
}