xml biçimi dosyaları için bir şema sözdizimi
Bu bölümde, xml biçimi dosyaları sözdizimi açıklanmaktadır.Nasıl gerçek xml biçimi dosyaları sözdizimi karşılık gelen görmek için bkz: Örnek xml biçimi dosyaları.Bu bölümde toplu alma nasıl kullandığını da dikkate alır <satır> ve <sütun> öğeleri ve yerleştirme xsi: type değeri bir öğesine veri küme.
xml kullanabilirsiniz biçim dosyası ile bir bcp deyim, bulk INSERT komutunu veya Ekle...SEÇİN * ndan openrowset(bulk...) deyim.
Not
You can modify a format file to let you bulk import from a data file in which the number and/or order of the fields differ from the number and/or order of table columns.Daha fazla bilgi için bkz: Toplu alma işlemi sırasında sütun alanlarını eşlemek için bir biçim dosyası kullanma.
xml şemasını temel sözdizimi
Bu sözdizimi deyimleri yalnızca öğeleri göster (<bcpformat>, <kaydı>, <alan>, <satır>, ve <sütun>) ve temel bir nitelikleri kendi.
<BCPFORMAT...>
<RECORD>
<FIELD ID = "fieldID" xsi:type = "fieldType" [...]
/>
</RECORD>
<ROW>
<COLUMN SOURCE = "fieldID" NAME = "columnName" xsi:type = "columnType" [...]
/>
</ROW>
</ BCPFORMAT>
Not
Xsi: type değeri ile ilişkili ek öznitelikleri bir <alan> veya <sütun> öğesi anlatılan daha sonra bu konuda.
Şema öğeleri açıklaması
Bu bölümde her öğesi için xml biçimi dosyaları xml şema tanımlar amacını özetlemektedir.Öznitelikler ayrı bölümlerde bu konunun ilerisinde açıklanmıştır.
<BCPFORMAT>
Bir tablo satırı tablosundaki sütunlar için belirtilen veri dosyası ve onun yazışma kaydı yapısını tanımlayan dosya biçimi öğedir.<KAYDI... />
Bir veya daha fazlasını içeren karmaşık bir öğe tanımlayan <alan> öğeleri.İçinde alanların bildirilen içinde sipariş biçim dosyası bu alanlar veri dosyasında göründükleri sıradır.<ALAN... />
Verileri içeren veri dosyasında alan tanımlar.Bu öðenin öznitelikleri açıklanmıştır "özniteliklerinin <alan> öğesi," Bu konuda daha sonra.
<SATIR... />
Bir veya daha fazlasını içeren karmaşık bir öğe tanımlayan <sütun> öğeleri.Sırasını <sütun> öğeleri, sırasına göre bağımsız <alan> öğeleri kayıt tanımı.Bunun yerine, sırasını <sütun> öğeleri bir biçim dosyası sonuç satır kümesi sütun sırasını belirlerVeri alanları hangi sırayla yüklenir karşılık gelen <sütun> öğeleri içinde bildirilmiş <sütun> öğesi.Daha fazla bilgi için bkz: "toplu alma nasıl kullandığını <satır> öğesi," Bu konuda daha sonra.
<SÜTUN>
Bir sütunu bir öğesi olarak tanımlar (<sütun>).Her <sütun> karşılık gelen öğe için bir <alan> öğesi (Kimliğine sahip KAYNAĞINDA belirtilen öznitelik , <sütun> öğe).Bu öðenin öznitelikleri açıklanmıştır "özniteliklerinin <sütun> öğesi," Bu konuda daha sonra.Ayrıca bkz: "toplu alma nasıl kullandığını <sütun> öğesi," Bu konuda daha sonra.
</ BCPFORMAT>
biçim dosyası sonlandırmak için gerekli.
Öznitelikler, <alan> öğesi
Bu bölüm özniteliklerini açıklayan <alan> Aşağıdaki şema sözdizimini özetlenen öğe:
<ALAN
ID ="fieldID"
xsi**:**type ="fieldType"
[ LENGTH ="n" ]
[ PREFIX_LENGTH ="p" ]
[ MAX_LENGTH ="m" ]
[ COLLATION ="collationName" ]
[ TERMINATOR ="terminator" ]
/>
Her <alan> öğesi diğerlerinden bağımsız.alan bakımından aşağıdaki öznitelikleri açıklanmıştır:
ALAN özniteliğidir |
Açıklama |
İsteğe bağlı / Gerekli |
---|---|---|
ID ="fieldID" |
Belirtir mantıksal ad alanın veri dosyasında.Bir alan alana başvurmak için kullanılan anahtar kimliğidir. <FIELD ID="fieldID"/> maps to <COLUMN SOURCE="fieldID"/> |
Gerekli |
xsi:type ="fieldType" |
Bu, bir xml öğesi örnek türünü tanımlar (bir öznitelik gibi kullanılır) yapısı.Değeri fieldType belirler, isteğe bağlı öznitelikleri (aşağıda) size gereken belirli örnek. |
(Veri türüne bağlı olarak) gerekli |
LENGTH ="n" |
Bu öznitelik uzunluğu sabit uzunluklu veri türünün örnek için tanımlar. Değeri n olmalı pozitif bir tamsayı. |
Xsi: type değeri olmadıkça isteğe bağlı |
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. |
Xsi: type değeri olmadıkça isteğe bağlı |
MAX_LENGTH ="m" |
Bu öznitelik içinde depolanan bayt sayısı olan bir verilen alan.Sütun en fazla uzunluğu olmayan bir hedef tablo adı verilir.max_length öznitelik sütun değeri için ayrılan depolama sınırlama bir çıkış karakteri sütun en fazla uzunluğu kısıtlar.Bu openrowset özellikle kullanışlı kullanıldığında işlevın select from yan tümce tümce tümcesinde bulk seçeneği. Değeri m olmalı pozitif bir tamsayı.Varsayılan olarak, en fazla uzunluk 8000 için karakterdir bir char sütun ve 4000 karakter için bir nchar sütun. |
İsteğe bağlı |
COLLATION ="collationName" |
ALFABE karakteri alanlar için yalnızca izin verilir.sql listesi için harmanlama Bkz: ad, sql Server harmanlama adı (Transact-sql). |
İsteğe bağlı |
SONLANDIRICI = "terminator" |
Bu öznitelik verileri alan Sonlandırıcı belirtir.Sonlandırıcı herhangi bir karakter olabilir.Sonlandırıcı verilerinin bir parçası olmayan benzersiz bir karakter olmalıdır. Varsayılan değer olarak, sekme karakteri (\t temsil edilen) alan ayırıcısı olur.Bir paragraf işaretini göstermek için \r\n kullanın. |
Xsi: yalnızca bir Type bu öznitelik gerektirir karakter veri ile kullanılan |
Xsi: type değerleri <alan> öğesi
xml xsi: type değeri olan bir öğenin örnek veri türünü tanımlar (bir öznitelik gibi kullanılır) yapısı."Koymak xsi: Type değer bir veri kümesi" kullanma hakkında bilgi için daha sonra bu bölümde.
Xsi: type değeri <alan> öğeyi destekleyen aşağıdaki veri türleri.
<ALAN> xsi: type değerleri |
Gerekli xml öznitelikleri Veri türü için |
İsteğe bağlı xml öznitelikleri 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 Veri Türleri (Transact-SQL).
Öznitelikler, <sütun> öğesi
Bu bölüm özniteliklerini açıklayan <sütun> Aşağıdaki şema sözdizimini özetlenen öğe:
<SÜTUN
SOURCE = "fieldID"
NAME = "columnName"
xsi:type = "columnType"
length = "n"
DUYARLIK = "n"
Ölçek = "value"
NULL = {"YES"
"HAYIR" } ]
/>
alan hedef sütununa eşlenen tablo aşağıdaki öznitelikleri kullanarak:
SÜTUN özniteliği |
Açıklama |
İsteğe bağlı / Gerekli |
---|---|---|
SOURCE ="fieldID" |
Sütun için eşleştirilen alan Kimliğini belirtir. <COLUMN SOURCE="fieldID"/> maps to <FIELD ID="fieldID"/> |
Gerekli |
NAME = "columnName" |
Biçim dosyası tarafından temsil edilen satır küme sütun adını belirtir.Bu sütun adı sonuç küme sütun tanımlamak için kullanılır ve onu hedef kullanılan sütun adı karşılık yok tablo. |
Gerekli |
xsi:type ="ColumnType" |
Bu, bir xml öğesi örnek veri türünü tanımlar (bir öznitelik gibi kullanılır) yapısı.Değeri ColumnType belirler, isteğe bağlı öznitelikleri (aşağıda) size gereken belirli örnek.
Not
Olası değerler, ColumnType ve bunların ilişkili öznitelikleri listelenen sonraki tablo.
|
İsteğe bağlı |
LENGTH ="n" |
Sabit uzunluklu veri türünün örnek uzunluğunu tanımlar.UZUNLUĞU yalnızca bir dize veri türü, xsi: type olduğunda kullanılır. Değeri n olmalı pozitif bir tamsayı. |
İsteğe bağlı (xsi: type dize veri türü ise kullanılabilir) |
PRECISION ="n" |
Birkaç basamak sayısını gösterir.Örneğin, duyarlılığı 5 123.45 numarası vardır. Değer, pozitif bir tamsayı olmalıdır. |
İsteğe bağlı (xsi: type değişken sayı veri türü ise kullanılabilir) |
SCALE ="int" |
Bir sayıyı ondalık noktanın sağındaki basamak sayısını gösterir.Örneğin, 123.45 sayısı 2 ölçeğini vardır. Değer bir tamsayı olmalıdır. |
İsteğe bağlı (xsi: type değişken sayı veri türü ise kullanılabilir) |
NULLABLE = { "YES" "NO" } |
Sütun null değerleri kabul edilebilir olup olmadığını gösterir.Bu öznitelik alanları tamamen bağımsızdır.Ancak, null (herhangi bir değer belirterek değil) belirtir bir sütun boş'U alan değilse ve çalışma -saat hata sonuçları. Yalnızca düz bir openrowset(bulk...) seçin deyim yoksa nullable öznitelik kullanılır. |
İsteğe bağlı (tüm veri türleri için kullanılabilir) |
Xsi: type değerleri <sütun> öğesi
xml xsi: type değeri olan bir öğenin örnek veri türünü tanımlar (bir öznitelik gibi kullanılır) yapısı."Koymak xsi: Type değer bir veri kümesi" kullanma hakkında bilgi için daha sonra bu bölümde.
The <COLUMN> element supports native SQL data types, as follows:
Kategori türü |
<SÜTUN> veri türleri |
Gerekli xml öznitelikleri Veri türü için |
İsteğe bağlı xml öznitelikleri Veri türü için |
---|---|---|---|
Sabit |
SQLBIT, SQLTINYINT, SQLSMALLINT, SQLINT, SQLBIGINT, SQLFLT4, SQLFLT8, SQLDATETIME, SQLDATETIM4, SQLDATETIM8, SQLMONEY, SQLMONEY4, SQLVARIANT, and SQLUNIQUEID |
Yok. |
NULL OLABİLECEK |
Değişken numarası |
SQLDECIMAL ve SQLNUMERIC |
Yok. |
NULL OLABİLECEK, DUYARLIK, ÖLÇEK |
LOB |
SQLIMAGE, CharLOB, SQLTEXT, and SQLUDT |
Yok. |
NULL OLABİLECEK |
Karakter lob |
SQLNTEXT |
Yok. |
NULL OLABİLECEK |
İkili dize |
SQLBINARY ve SQLVARYBIN |
Yok. |
NULL OLABİLECEK, UZUNLUĞU |
Karakterdize |
SQLCHAR, SQLVARYCHAR, SQLNCHAR, and SQLNVARCHAR |
Yok. |
NULL OLABİLECEK, UZUNLUĞU |
Önemli |
---|
toplu vermek veya sqlxml veri almak için aşağıdaki veri türlerinden kullanın, biçim dosyası: sqlchar veya sqlvarychar (verileri istemci kod sayfa veya örtülü harmanlama kod sayfa gönderilir), sqlnchar veya sqlnvarchar (veri Unicode olarak gönderilir), veya SQLBINARY ya da SQLVARYBIN (veri herhangi bir dönüştürme olmadan gönderilir). |
Hakkında daha fazla bilgi için SQL Server Bkz: veri türleri, Veri Türleri (Transact-SQL).
Toplu alma nasıl kullandığını <satır> öğesi
The <ROW> element is ignored in some contexts.Mı <satır> bulk Import işlemi bağlıdır işlemi nasıl yapılır öğesi etkileri:
the bcp command
Ne zaman veri yüklendiği hedef tablo, bcp göz ardı eder <satır> bileşeni.Bunun yerine, bcp hedef tablo sütun türlerini temel alan verileri yükler.
Transact-SQL ifadeleri (bulk INSERT ve OPENROWSET'ın Bulk satır kümesi sağlayıcı)
Ne zaman veri alma toplu bir tablo, Transact-SQL ifadelerini kullanan <satır> bileşen oluşturmak giriş satır kümesi.Ayrıca, Transact-SQL ifadeleri altında belirtilen sütun türlerine göre uygun Tür Dönüşümleri gerçekleştirmek <satır> ve buna karşılık gelen sütun hedef tablo.biçim dosyası ve hedef sütun türleri arasında bir uyuşmazlık varsa, belirtilen tablo, fazladan türü dönüştürme gerçekleşir.Bu ek türü dönüştürme karşılaştırıldığında OPENROWSET'ın Bulk satır kümesi sağlayıcı bulk INSERT veya davranış bazı tutarsızlık (yani duyarlılık kaybı) neden olabilir bcp.
Bilgiler, <satır> öğesi verir satır oluşturulmuş kalmadan ek bir bilgi.Bu nedenle, bir deyim kullanarak satır kümesi kümesi oluşturabilir (seçin * OPENROWSET(BULK datafile FORMATFILE=xmlformatfile).
Not
openrowset bulk yan tümce tümce tümce gerektirir bir biçim dosyası (alanının veri türü dönüştürme sütun veri türünü yalnızca bir xml ile kullanılabildiğini unutmayın biçim dosyası).
Toplu alma nasıl kullandığını <sütun> öğesi
Bir tabloya veri alma toplu için <sütun> öğeleri bir biçim dosyası belirterek tablo sütunlar veri dosyası alanı eşlemek:
Veri dosyasındaki satırı içindeki her alan konumu.
alan veri türü İstenen sütun veri türüne dönüştürmek için kullanılan sütun tipi.
Bir alana hiçbir sütun eşleşirse, alan içinde oluşturulan satırları kopyalanır.Bu davranış, bir veri dosyası (farklı tablolardaki) farklı sütunları ile satırları oluşturmak verir.
Benzer şekilde, bir tablodan veri verme toplu için her <sütun> , biçim dosyası eşlemeleri giriş tablo satırın sütun kendi karşılık gelen alana çıktı veri dosyası.
Xsi: Type değer bir veri kümesi koymak
Bir xml belgesini xml şema tanımı (xsd) dil doğrulandığında, xsi: Type değer veri küme konur.xml yükleyerek veri küme xsi: type bilgileri ancak koyabilirsiniz biçim dosyası bir xml belgesine (örneğin, myDoc), aşağıdaki kod parçasında 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");
}
Ayrıca bkz.