Składnia schematu do formatu XML, pliki

W tej sekcji opisano składnię pliki w formacie XML.Aby wyświetlić składnię odpowiadają rzeczywiste pliki w formacie XML, zobacz Sample XML Format Files. W tej sekcji uważa się także sposobu korzystania z import zbiorczy <WIERSZ> i <kolumna> elementy i jak umieszczać wartości xsi: type elementu w zbiorze danych.

Można użyć XML plik formatu z BCP polecenie zbiorczej instrukcja INSERT lub INSERT... SELECT * FROM OPENROWSET(BULK...) instrukcja.

Uwaga

Można zmodyfikować plik formatu, które umożliwiają zbiorczej importu z pliku danych, w którym numeru i/lub kolejność pól różnią się od numeru i/lub kolejność kolumn w tabela.Aby uzyskać więcej informacji zobaczUsing a Format File to Map Fields to Columns During Bulk Import.

Podstawowa składnia schematu XML

Ta składnia instrukcji Pokaż tylko (elementy<BCPFORMAT>, <REKORD>, <POLE>, <WIERSZ>, a <kolumna>) i ich podstawowych atrybutów.

<BCPFORMAT...>

   <RECORD>

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

      />

   </RECORD>

   <ROW>

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

      />

   </ROW>

</ BCPFORMAT>

Uwaga

Atrybuty dodatkowe, które są skojarzone z wartością xsi: type w <POLE> lub <kolumna> element zostały opisane w dalszej części tego tematu.

Opis elementów schematu

Ta sekcja zawiera podsumowanie celem każdego elementu, który definiuje schematu XML do plików w formacie XML.Atrybuty są opisane w oddzielnych sekcjach w dalszej części tego tematu.

  • <BCPFORMAT>
    Jest to element formatu pliku, definiująca strukturę rekordu danych danego pliku i jego korespondencji do kolumn w tabela Wiersz tabela.

  • <REKORD... />
    Definiuje element złożonych, zawierających jeden lub więcej <POLE> elementy. Kolejność pól zadeklarowane w pliku w formacie jest kolejność, w jakiej pola te pojawiają się w pliku danych.

  • <POLE... />
    Określa pole w pliku danych, który zawiera dane.

    Atrybuty tego elementu są omówione w "atrybuty z <POLE>Element"w dalszej części tego tematu.

  • <WIERSZ... />
    Definiuje element złożonych, zawierających jeden lub więcej <kolumna> elementy. Kolejność <kolumna> elementy jest niezależny od rzędu <POLE> elementy w definicji RECORD. Zamiast kolejność <kolumna> elementy w pliku formatu określa kolejność kolumn wynikowego zestawu zestaw wierszy. Pola danych są ładowane w kolejności, w których odpowiednie <kolumna> elementy są zadeklarowane w <kolumna> element.

    Aby uzyskać więcej informacji, zobacz „ jak użycie import zbiorczy <WIERSZ>Element"w dalszej części tego tematu.

  • <kolumna>
    Definiuje kolumna (element)<kolumna>). Każdy <kolumna> element odpowiada <POLE> element (których identyfikator jest określona w urządzenie źródłowe atrybut <kolumna> element).

    Atrybuty tego elementu są omówione w "atrybuty z <kolumna>Element"w dalszej części tego tematu. Zobacz także „ jak użycie import zbiorczy <kolumna>Element"w dalszej części tego tematu.

  • </ BCPFORMAT>
    Wymagane do zakończenia plik formatu.

Atrybuty z <POLE> Element

W tej sekcji opisano atrybuty <POLE> element, który przedstawiono w następującej składni schematu:

<POLE

   ID ="fieldID"

   xsi**:**type ="fieldType"

   [ LENGTH ="n" ]

   [ PREFIX_LENGTH ="p" ]

   [ MAX_LENGTH ="m" ]

   [ COLLATION ="collationName" ]

   [ TERMINATOR ="terminator" ]

/>

Każdy <POLE> element jest niezależna od innych. Pole jest opisany w odniesieniu do następujących atrybutów:

pole atrybut

Description

Opcjonalne /

Wymagane

ID ="fieldID"

Określa logiczną nazwę pole w pliku danych.Identyfikator pole jest używana do odwoływania się do pole klucz.

<FIELD ID="fieldID"/> maps to <COLUMN SOURCE="fieldID"/>

Wymagane

xsi:type ="fieldType"

Jest to XML konstrukcja (używana podobnie jak atrybut), która identyfikuje typ wystąpienie elementu.Wartość fieldType Określa, które z opcjonalnych atrybutów (patrz poniżej) zostanie potrzebne w danej instancji.

Wymagana (w zależności od typu danych)

LENGTH ="n"

Ten atrybut określa długość w przypadku wystąpienie tego typu danych o stałej długości.

Wartość n musi być dodatnią liczbą całkowitą.

Opcjonalnie, chyba że jest to wymagane przez wartość xsi: type

PREFIX_LENGTH ="p"

Ten atrybut określa długość prefiksu dla reprezentacji danych binarnych.Wartość PREFIX_LENGTH p, musi być jedną z następujących czynności: 1, 2, 4 lub 8.

Opcjonalnie, chyba że jest to wymagane przez wartość xsi: type

MAX_LENGTH ="m"

Ten atrybut jest maksymalna liczba bajtów, które mogą być przechowywane w danym polu.Bez tabela miejsce docelowe maks. długość kolumna nie jest znany.Atrybut MAX_LENGTH ogranicza maksymalną długość kolumna wyprowadzenia znaku, ograniczanie pamięci masowej, przydzielanych dla wartości kolumna.Jest to zwłaszcza wtedy, gdy za pomocą opcji BULK funkcja OPENROWSET w klauzula SELECT FROM.

Wartość m musi być dodatnią liczbą całkowitą. Domyślnie maksymalna długość wynosi 8 000 znaków CHAR kolumna i 4000 znaków dla nchar kolumna.

Opcjonalne

COLLATION ="collationName"

SORTOWANIE jest dozwolona tylko dla pól znaków.Aby wyświetlić listę nazw sortowanie programu SQL zobacz SQL Server Collation Name (Transact-SQL).

Opcjonalne

TERMINATOR = "terminator"

Ten atrybut określa terminator pole danych.The terminator może być dowolnym znakiem.The terminator musi być unikatowy znak, który nie jest częścią danych.

Domyślnie terminator pole jest znak tabulacji (reprezentowana jako \t).Aby przedstawić znacznik akapitu, należy użyć \r\n.

Używane tylko w przypadku xsi: type danych znak, który wymaga tego atrybut

Wartości Xsi:type <POLE> Element

Wartość xsi: type jest XML konstrukcji (używana podobnie jak atrybut), która identyfikuje typ danych wystąpienie elementu.Aby uzyskać informacje o przy użyciu "Oddanie xsi: type wartości do zestaw danych" dalej w tej sekcji.

Wartość xsi: type <POLE> element obsługuje następujące typy danych.

<POLE> wartości xsi: type

Wymaganych atrybut XML

dla typu danych

Opcjonalne atrybut XML

dla typu danych

NativeFixed

LENGTH

Brak.

NativePrefix

PREFIX_LENGTH

MAX_LENGTH

CharFixed

LENGTH

SORTOWANIE

NCharFixed

LENGTH

SORTOWANIE

CharPrefix

PREFIX_LENGTH

MAX_LENGTH sortowanie

NCharPrefix

PREFIX_LENGTH

MAX_LENGTH sortowanie

CharTerm

TERMINATOR

MAX_LENGTH sortowanie

NCharTerm

TERMINATOR

MAX_LENGTH sortowanie

For more information about Microsoft SQL Server data types, see Data Types (Transact-SQL).

Atrybuty z <kolumna> Element

W tej sekcji opisano atrybuty <kolumna> element, który przedstawiono w następującej składni schematu:

<kolumna

urządzenie źródłowe = "fieldID"

NAZWA = "columnName"

Typ xsi: type = "columnType"

DŁUGOŚĆ = "n"

PRECYZJI = "n"

SKALA = "value"

NULLABLE = {"TAK"

"NO"}]

/>

Pole jest mapowany do kolumna w tabela miejsce docelowe, stosując następujące atrybuty:

Atrybut kolumna

Description

Opcjonalne /

Wymagane

SOURCE ="fieldID"

Określa identyfikator pole są mapowane do kolumna.

<kolumna urządzenie źródłowe="fieldID"/> maps to <pole ID="fieldID"/>

Wymagane

NAZWA = "columnName"

Określa nazwę kolumna zestaw wierszy reprezentowanych przez plik formatu.Nazwa ta kolumna służy do identyfikacji kolumny zestaw wyników, a on nie muszą odpowiadać nazwę kolumny w tabela miejsce docelowe.

Wymagane

xsi:type ="ColumnType"

Jest to XML konstrukcja (używana podobnie jak atrybut), która identyfikuje typ danych wystąpienie elementu.Wartość ColumnType Określa, które z opcjonalnych atrybutów (patrz poniżej) zostanie potrzebne w danej instancji.

NoteNote:
Możliwe wartości ColumnType i ich atrybutów skojarzone są wymienione w następnej tabela.

Opcjonalne

LENGTH ="n"

Określa długość w przypadku wystąpienie tego typu danych o stałej długości.DŁUGOŚCI jest używany tylko wtedy, gdy xsi: type jest typu ciąg.

Wartość n musi być dodatnią liczbą całkowitą.

Opcjonalne (dostępne tylko wtedy, gdy xsi: type jest typu ciąg znaków)

PRECISION ="n"

Określa liczbę cyfr w wielu.Na przykład liczba 123.45 ma dokładność 5.

Wartość musi być dodatnią liczbą całkowitą.

Opcjonalne (dostępne tylko wtedy, gdy xsi: type jest to typ danych zmiennej numer)

SCALE ="int"

Wskazuje liczbę cyfr po prawej stronie przecinka dziesiętnego w wielu.Na przykład liczba 123.45 ma skala jest równa 2.

Wartość musi być liczbą całkowitą.

Opcjonalne (dostępne tylko wtedy, gdy xsi: type jest to typ danych zmiennej numer)

ZEROWALNE = { "YES"

"NO" }

Wskazuje, czy kolumna może przyjmować wartości NULL.Ten atrybut jest całkowicie niezależny od FIELDS.Jednak kolumna nie jest PUSTYCH, a pole określa wartość NULL (określając nie każda wartość), powoduje błąd czas wykonania.

Opcjonalne (Ta funkcja jest dostępna dla wszystkich typów danych)

Wartości Xsi:type <kolumna> Element

Wartość xsi: type jest XML konstrukcji (używana podobnie jak atrybut), która identyfikuje typ danych wystąpienie elementu.Aby uzyskać informacje o przy użyciu "Oddanie xsi: type wartości do zestaw danych" dalej w tej sekcji.

The <kolumna> element supports native SQL data types, as follows:

Typ kategorii

<kolumna> Typy danych

Wymaganych atrybut XML

dla typu danych

Opcjonalne atrybut XML

dla typu danych

Stała

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

Brak.

ZEROWALNE

Numer zmiennej

SQLDECIMAL i SQLNUMERIC

Brak.

PUSTYCH, DOKŁADNOŚCI, SKALI

LOB

SQLIMAGE, CharLOB, SQLTEXT, a SQLUDT

Brak.

ZEROWALNE

Znak LOB

SQLNTEXT

Brak.

ZEROWALNE

Ciąg binarny

SQLBINARY i SQLVARYBIN

Brak.

PUSTYCH, DŁUGOŚĆ

Ciąg znaków

SQLCHAR, SQLVARYCHAR, SQLNCHAR, a SQLNVARCHAR

Brak.

PUSTYCH, DŁUGOŚĆ

Important noteImportant Note:

Zbiorcza eksportowania lub importowania danych SQLXML, użyj jednej z następujących typów danych w sieci plik formatu: SQLCHAR SQLVARYCHAR (dane są przesyłane w stronie kodowej klient lub w stronie kodowej implikowane przez sortowanie), SQLNCHAR lub SQLNVARCHAR (dane są przesyłane w standardzie Unicode), lub SQLBINARY lub SQLVARYBIN (dane są przesyłane bez żadnej konwersji).

Aby uzyskać więcej informacji na temat SQL Server typy danych, zobacz Data Types (Transact-SQL).

W jaki sposób używa import zbiorczy &lt;WIERSZ&gt; Element

Czy <WIERSZ> operacji importu zbiorczego ma wpływ na element zależy od tego, w jaki sposób wykonać tej operacji:

  • the bcp command

    Podczas ładowania danych do tabela miejsce docelowe BCP ignoruje składnika > < wiersz. Zamiast tego BCP ładuje dane na podstawie kolumna typy w tabela miejsce docelowe.

  • Transact-SQL instrukcje (BULK INSERT i jego OPENROWSET dostawca zbiorczych zestawów zestaw wierszy)

    Zbiorcza podczas importowania danych do tabela Transact-SQL użyć instrukcji <WIERSZ> składnik do generowania danych wejściowych zestawu zestaw wierszy. Ponadto Transact-SQL instrukcje wykonywania konwersji odpowiedni typ oparte na typach kolumn, określonym w obszarze <WIERSZ> i odpowiadające im kolumna w tabela miejsce docelowe. Jeśli istnieje niezgodność między typami kolumn jako określona plik formatu i występuje konwersja typu dodatkowe, w tabela miejsce docelowe.Ta konwersja typu dodatkowe może prowadzić do niektórych rozbieżność (to znaczy straty precyzja) w zachowaniu w BULK INSERT lub OPENROWSET firmy zbiorcze zestawu zestaw wierszy dostawca w porównaniu z BCP.

    Informacje zawarte w <WIERSZ> Element umożliwia wiersz, aby być wykonane bez żadnych dodatkowych informacji. Z tego powodu, można wygenerować zestawu zestaw wierszy za pomocą instrukcja SELECT (SELECT * FROM OPENROWSET (BULK datafile FORMATFILE =xmlformatfile).

    Uwaga

    Klauzula OPENROWSET BULK wymaga plik formatu (należy zauważyć, że konwersja z typu danych pole na typ danych kolumna jest dostępna tylko w przypadku XML plik formatu).

W jaki sposób używa import zbiorczy &lt;kolumna&gt; Element

Dla masowych importowania danych do tabela <kolumna> elementy w plik formatu mapować pole pliku danych do kolumna tabela, określając:

  • Położenie każdego pole w wierszu w pliku danych.

  • Typ kolumna, który jest używany do konwersji typu danych pole na typ danych kolumna żądane.

Jeśli kolumna nie jest mapowany do pola, pole nie jest kopiowana do wygenerowane wiersze.To zachowanie umożliwia pliku danych wygenerować wiersze z różnych kolumn (w różnych tabelach).

Podobnie dla masowych eksportowania danych z tabela każde <kolumna> w plik formatu mapuje kolumna w wierszu tabela danych wejściowych do odpowiadające mu pole w pliku danych wyjściowych.

Wprowadzanie wartości xsi: type do zestaw danych

Gdy dokument XML jest sprawdzany za pomocą języka definicji schematu XML (XSD), wartość xsi: type nie jest wprowadzone do zestaw danych.Jednak można umieszczać informacje xsi: type zestaw danych przez załadowanie pliku w formacie XML do dokumentu XML (na przykład myDoc), jak pokazano w poniższym fragmencie kodu:

...;
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");
}