Udostępnij za pośrednictwem


Składnia schematu dla plików w formacie XML

W tej sekcji opisano składnię plików w formacie XML.Aby zobaczyć, jak składnia odpowiada rzeczywiste pliki w formacie XML, zobacz Przykładowe pliki w formacie XML.W tej sekcji uważa również, jak używa się import zbiorczy <wiersz> i <kolumny> elementów i jak umieszczać wartości xsi: Type elementu do zestaw danych.

Można użyć XML plik formatu z bcp polecenia WSTAW luzem instrukcja lub WSTAW...WYBIERZ * Z OPENROWSET(BULK...) instrukcja.

Ostrzeżenie

   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.Aby uzyskać więcej informacji, zobacz Przy użyciu formatu pliku do mapowania pól kolumn podczas importu zbiorczego.

Podstawowa składnia schematu XML

Ta składnia instrukcji Pokaż tylko elementy (<BCPFORMAT>, <REKORDU>, <pola>, <wiersz>, i <kolumny>) 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>

Ostrzeżenie

Dodatkowe atrybuty, które są skojarzone z wartością xsi: type w <pola> lub <kolumny> element opisano w dalszej części tego tematu.

Opis elementów schematu

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

  • <BCPFORMAT>
    Jest element formatu pliku, który definiuje strukturę rekordu danych danego pliku i jego korespondencji do kolumn w tabela Wiersz tabela.

  • <REKORD... />
    Definiuje element złożony, zawierających jeden lub więcej <pola> elementów.Kolejność, w której zgłaszane są pola w plik formatu jest kolejność wyświetlania pól w pliku danych.

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

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

  • <WIERSZ... />
    Definiuje element złożony, zawierających jeden lub więcej <kolumny> elementów.Kolejność <kolumny> elementów jest niezależna rzędu <pola> elementów w definicji REKORDU.Zamiast kolejność <kolumna> elementów w plik formatu określa kolejność kolumn w wynikowym zestawie zestaw wierszy.Pola danych są załadowane w kolejności, w jakiej odpowiednie <kolumny> elementy są zadeklarowane w <kolumny> elementu.

    Aby uzyskać więcej informacji, zobacz "jak importu zbiorczego używa <wiersz> elementu" w dalszej części tego tematu.

  • <KOLUMNY>
    Definiuje kolumna jako elementu (<kolumna>).Każdy <kolumny> element odpowiada <pola> elementu (których identyfikator jest określona w ŹRÓDLE atrybut z <kolumny> element).

    Atrybuty tego elementu są omówione w "atrybuty <kolumny> elementu" w dalszej części tego tematu.Zobacz także "jak importu zbiorczego używa <kolumny> elementu" w dalszej części tego tematu.

  • </ BCPFORMAT>
    Wymagane, aby zakończyć plik formatu.

Atrybuty <pola> Element

Ta sekcja opisuje atrybuty <pola> 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 <pola> element jest niezależna od innych.Pole jest opisany w zakresie następujących atrybutów:

POLE atrybutu

Opis

Opcjonalne /

Wymagane

ID ="fieldID"

Określa nazwa logiczna 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 konstrukcji (używana podobnie jak atrybut) identyfikujący typ wystąpienie elementu.Wartość fieldType Określa, którego atrybuty opcjonalne (patrz poniżej) jest potrzebna w danym wystąpienie.

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

LENGTH ="n"

Ten atrybut określa długość wystąpienie typ danych o stałej długości.

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

Opcjonalne, chyba że 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: 1, 2, 4 lub 8.

Opcjonalne, chyba że wartość xsi: type

MAX_LENGTH ="m"

Ten atrybut jest maksymalna liczba bajtów, które mogą być przechowywane w danym pole.Bez tabela miejsce docelowe max długości kolumna nie jest znany.Atrybut MAX_LENGTH ogranicza maksymalną długość kolumna wyprowadzenia znaku, ograniczając pamięć zaalokowana wartości kolumna.Jest to szczególnie wygodne, gdy za pomocą funkcja OPENROWSET opcji luzem w klauzula wybierz Z.

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

Opcjonalne

COLLATION ="collationName"

SORTOWANIE jest dozwolona tylko dla pól znaków.Lista nazw sortowanie SQL, zobacz Nazwa sortowania SQL Server (Transact-SQL).

Opcjonalne

TERMINATOR = "terminator"

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

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

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

Wartości xsi: type <pola> Element

Wartość xsi: Type jest XML konstrukcji (używana podobnie jak atrybut) identyfikujący typ danych wystąpienie elementu.Informacje dotyczące używania "wprowadzanie xsi: type wartość w zbiorze danych" w dalszej części tej sekcji.

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

<POLE> wartości xsi: type

Wymaganych atrybutów XML

dla typu danych

Opcjonalne atrybutów 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 Typy danych (Transact-SQL).

Atrybuty <kolumny> Element

Ta sekcja opisuje atrybuty <kolumny> element, który przedstawiono w następującej składni schematu:

<KOLUMNY

SOURCE = "fieldID"

NAME = "columnName"

xsi:type = "columnType"

Długość = "n"

PRECISION = "n"

Skala = "value"

NULLABLE = {"YES"

"NIE" } ]

/>

Pole jest mapowany do kolumna w tabela miejsce docelowe przy użyciu następujących atrybutów:

Atrybut kolumny

Opis

Opcjonalne /

Wymagane

SOURCE ="fieldID"

Określa identyfikator pole mapowanego do kolumna.

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

Wymagane

NAME = "columnName"

Określa nazwę kolumna w wierszu zestaw reprezentowane przez plik formatu.Nazwa ta kolumna służy do identyfikowania kolumn zestaw wyników, a nie musi odpowiadać nazwę kolumny w tabela miejsce docelowe.

Wymagane

xsi:type ="ColumnType"

Jest to XML konstrukcji (używana podobnie jak atrybut), który identyfikuje typ danych wystąpienie elementu.Wartość ColumnType Określa, którego atrybuty opcjonalne (patrz poniżej) jest potrzebna w danym wystąpienie.

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

Opcjonalne

LENGTH ="n"

Określa długość wystąpienie typ danych o stałej długości.DŁUGOŚĆ jest używane tylko wtedy, gdy typ danych ciąg xsi: type.

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

Opcjonalne (dostępne tylko wtedy, gdy typ danych ciąg xsi: Type)

PRECISION ="n"

Wskazuje liczbę cyfr w liczbie.Na przykład liczba 123.45 ma dokładność 5.

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

Opcjonalne (dostępne tylko wtedy, gdy typ danych Liczba zmiennej xsi: Type)

SCALE ="int"

Wskazuje liczbę cyfr po prawej stronie przecinka dziesiętnego w szeregu.Na przykład liczba 123.45 ma skali 2.

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

Opcjonalne (dostępne tylko wtedy, gdy typ danych Liczba zmiennej xsi: Type)

NULLABLE = { "YES"

"NO" }

Wskazuje, czy kolumna może przyjmować wartości NULL.Ten atrybut jest całkowicie niezależny od pola.Jednakże jeżeli kolumna nie jest NULLABLE i pole określa wartość NULL (określając nie każda wartość), uruchom -czas błąd wyników.

Atrybut NULLABLE jest używana, tylko jeśli zwykły instrukcja wybierz Z OPENROWSET(BULK...).

Opcjonalne (dostępne dla dowolnego typu danych)

Wartości xsi: type <kolumny> Element

Wartość xsi: Type jest XML konstrukcji (używana podobnie jak atrybut) identyfikujący typ danych wystąpienie elementu.Informacje dotyczące używania "wprowadzanie xsi: type wartość w zbiorze danych" w dalszej części tej sekcji.

<Kolumny> element obsługuje macierzyste typy danych języka SQL w następujący sposób:

Kategoria typu

<Kolumna> typów danych

Wymaganych atrybutów XML

dla typu danych

Opcjonalne atrybutów XML

dla typu danych

Stałe

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

Brak.

NULLABLE

Numer zmiennej

SQLDECIMAL i SQLNUMERIC

Brak.

NULLABLE, PRECISION, SKALI

LOB

SQLIMAGE, CharLOB, SQLTEXT, and SQLUDT

Brak.

NULLABLE

Znak LOB

SQLNTEXT

Brak.

NULLABLE

Ciąg binarny

SQLBINARY i SQLVARYBIN

Brak.

NULLABLE, DŁUGOŚĆ

Ciąg znaków

SQLCHAR, SQLVARYCHAR, SQLNCHAR, and SQLNVARCHAR

Brak.

NULLABLE, DŁUGOŚĆ

Ważna informacjaWażne:

Luzem eksportu lub importu danych SQLXML, użyj jednej z następujących typów danych w sieci plik formatu: SQLCHAR lub SQLVARYCHAR (dane wysyłane w strona kodowa klient lub strona kodowa implikowane przez sortowanie), SQLNCHAR lub SQLNVARCHAR (dane wysyłane jako Unicode), lub SQLBINARY lub SQLVARYBIN (dane wysyłane bez żadnej konwersji).

Więcej informacji o SQL Server typów danych, zobacz Typy danych (Transact-SQL).

Jak używa się importu zbiorczego <wiersz> Element

<Wiersz> element jest ignorowany w pewnych kontekstach.Czy <wiersz> element dotyczy operacji importu zbiorczego zależy od tego, jak wykonać operacji:

  • bcp polecenia

    Podczas ładowania danych do tabela miejsce docelowe, bcp ignoruje <wiersz> składnika.Zamiast tego bcp wczytuje dane na podstawie kolumna typów tabela miejsce docelowe.

  • Transact-SQL instrukcje (WSTAW luzem i jego OPENROWSET luzem zestaw wierszy dostawca)

    Luzem podczas importowania danych do tabela, Transact-SQL za pomocą instrukcji <wiersz> składnika do generowania wprowadzania zestaw wierszy.Ponadto Transact-SQL instrukcji wykonywania konwersje typów właściwe na podstawie typów kolumn określonych w <wiersz> i odpowiedniej kolumna w tabela miejsce docelowe.Jeśli istnieje niezgodność między typy kolumn jako określone w plik formatu i w tabela miejsce docelowe występuje dodatkowy typ konwersji.Ta konwersja typu dodatkowe może prowadzić do niektórych rozbieżności (to znaczy strata precision) zachowanie WSTAW luzem lub OPENROWSET's luzem zestaw wierszy dostawca w porównaniu z bcp.

    Informacje w <wiersz> element umożliwia wierszy do skonstruowane bez żadnych dodatkowych informacji.Z tego powodu można wygenerować zestawu zestaw wierszy za pomocą instrukcja SELECT (Wybierz * Z OPENROWSET(BULK datafile FORMATFILE=xmlformatfile).

    Ostrzeżenie

    Klauzula OPENROWSET luzem wymaga plik formatu (Zauważ, że konwersja z typu danych pole Typ danych kolumna jest dostępna tylko dla XML plik formatu).

Jak używa się importu zbiorczego <kolumny> Element

Do importowania danych do tabela zbiorczej <kolumny> elementów w plik formatu zamapuj pole pliku danych do kolumny tabela, określając:

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

  • Typ kolumna służy do konwersji typu danych pole Typ danych odpowiednie kolumna.

Jeżeli kolumna nie jest mapowany do pola, pole nie jest kopiowana do wygenerowane wiersze.Takie zachowanie umożliwia generowanie wierszy z różnych kolumn (w różnych tabelach) pliku danych.

Podobnie dla masowych eksportowania danych z tabela każdy <kolumna> w plik formatu mapy kolumna wiersza tabela wprowadzania odpowiadające mu pole w pliku danych wyjściowych.

Wprowadzanie wartości xsi: type do zestawu danych

Po sprawdzeniu poprawności dokumentu XML za pomocą języka definicji schematu XML (XSD) wartość xsi: type nie jest umieszczana w zestaw danych.Jednakże informacje xsi: type zestaw danych można umieścić ładując plik formatu 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");
}