Exportovat (0) Tisk
Rozbalit vše
Tento článek byl přeložen strojově počítačem. Původní text zobrazíte přesunutím ukazatele myši nad jednotlivé věty článku.
Překlad
Originál

Zadaný XML srovnání bez udaného typu XML

Můžete vytvořit proměnné, parametry a sloupců xml TYPE. Kolekce schémat XML můžete volitelně spojit s proměnnou, parametr nebo sloupec xml TYPE. V tomto případě xml se nazývá datový typ instance Zadaný.V opačném případě se nazývá XML instance bez typu.

Složka xml Typ dat implementuje norma ISO xml Typ dat. Proto jej může uložit ve správném dokumenty XML verze 1.0 také takzvané obsahu fragmenty XML s uzly textu a provést libovolný počet prvky nejvyšší úroveň v sloupec bez udaného typu XML.Systém zkontroluje data je ve správném, nevyžaduje sloupec vázat schémat XML a odmítne data, která nejsou ve správném v tom smyslu, rozšířené.To platí také pro proměnné bez typu XML a parametry.

Schéma XML obsahuje následující:

  • Omezení ověření. Kdykoli instance xml zadaný je přiřazena nebo změněna, SQL Server ověřuje instance.

  • Datový typ informace. Schémata poskytují informace o typech atributy a prvky xml datový typ instance. Informace o typu poskytuje přesnější provozní sémantika na hodnoty obsažené v instance, než je možné s netypovou xml. Například desítkové aritmetické operace lze provádět na desítkovou hodnotu, ale ne na hodnotu řetězce.Z tohoto důvodu může být proveden zadaný úložiště XML výrazně kompaktnější než bez udaného typu XML.

Použití nezadané xml Typ dat v následujících situacích:

  • Nemáte schématu dat XML.

  • Máte-li schémata, ale nechcete, aby se server ověřit data.Je někdy případ, kdy aplikace provádí ověřování na straně klient před uložením dat na serveru nebo dočasně uloží data XML, která je podle schématu neplatný, nebo používá součástí schématu, které nejsou podporovány na serveru.

Použití zadané xml Typ dat v následujících situacích:

  • Máte schémata pro vaše data XML a chcete, aby server ověřit data XML podle schémat XML.

  • Chcete využít úložiště a dotaz optimalizace založený na typu informací.

  • Chcete lépe využít informace o typu během kompilace dotazy.

Zadaný sloupce, parametry a proměnné XML lze uložit dokumenty XML nebo obsah.Však musíte určit s příznakem, zda jsou ukládání dokumentu nebo obsahu v době deklarace.Navíc je nutné poskytnout kolekce schémat XML.Pokud každá instance XML má přesně jeden prvek nejvyšší úroveň, určete dokument.V opačném případě použijte obsah.Dotaz kompilátor používá příznak dokument v typ kontroly během kompilace dotazu k odvození prvky nejvyšší úroveň singleton.

Dříve než můžete vytvořit zadaný pomocí klávesnice xml proměnné, parametrů nebo sloupců, musíte nejprve zaregistrovat kolekce schématu XML pomocí CREATE kolekce schématu XML (Transact-SQL). Můžete pak přidružit kolekce schématu XML proměnných, parametrů nebo sloupců xml Typ dat.

V následujících příkladech se zásady vytváření názvů dvoudílný používá pro určení názvu kolekce schématu XML.První část je Společnosti Adventure Works název schématu a druhá část je název kolekce schématu XML.

Příklad: Přidružení kolekce schéma xml typu Proměnná

The following example creates anxml type variable and associates a schema collection with it.kolekce schématu zadané v příkladu je již importován v Společnosti Adventure Works databáze.

DECLARE @x xml (Production.ProductDescriptionSchemaCollection) 

Příklad: Zadání schématu pro xml typ sloupec

Následující příklad vytvoří tabulka s xml Zadejte sloupce a určuje schématu pro sloupec:

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

Příklad: Uložená procedura předáním xml typ parametru

V následujícím příkladu předá xml Zadejte parametr uložená procedura a určuje schématu pro proměnnou:

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

Poznámka: následující o kolekce schématu XML:

  • Je k dispozici pouze v databázi, na které byl registrován pomocí kolekci schématu XML Vytváření kolekce schématu XML.

  • Pokud jste přetypovat z řetězce na zadaného xml Typ dat, analýzu také provádí ověření a psát, založen na oborech názvů schématu XML v zadané kolekce.

  • Můžete obsadit z zadaný xml Typ dat do bez typu xml Typ dat a naopak.

Další informace o jiných způsobech Generovat XML v serveru SQL Server naleznete v tématu Generování instance XML. Po vygenerování XML může být přiřazena buď xml Typ dat proměnné nebo uložené v xml Zadejte sloupce pro další zpracování.

V hierarchii typu dat xml Typ dat se zobrazí pod sql_variant a uživatelem definované typy, ale nad některý z předdefinovaných typů.

Příklad: Určující charakteristiky, které chcete zachovat xml zadaný sloupec

Pro zadaný xml sloupec, je-li omezit sloupec povolit prvky nejvyšší úroveň, pouze jeden pro každou instance v něm uložená. To provedete zadáním nepovinné DOCUMENT omezující vlastnost, když je vytvořen tabulka, jak je znázorněno v následujícím příkladu:

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

Ve výchozím nastavení instance, které jsou uloženy v zadaný xml sloupec jsou uloženy jako obsah XML a nikoli jako dokumenty XML. To umožňuje následující:

  • Nula nebo více prvky nejvyšší úroveň

  • Text uzly v prvky nejvyšší úroveň

Můžete také výslovně zadat toto chování přidáním CONTENT omezující vlastnost, jak je znázorněno v následujícím příkladu:

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

Poznámka můžete zadat volitelné dokument nebo obsah fasetami kdekoli definujete xml Typ (zadaný xml). Například když je vytvořit zadaný xml Proměnná, můžete přidat omezující vlastnost dokument a obsah uvedené v následující:

declare @x xml (DOCUMENT Production.ProductDescriptionSchemaCollection)

Složka xml Typ dat sloupce, proměnné a parametry lze napsat pomocí schématu XML, ale nikoli pomocí DTD. Však vložené DTD lze použít pro zadaný i bez udaného typu XML, zadat výchozí hodnoty a nahradit odkazy na entita s jejich rozbalené formuláře.

Můžete převést soubory DTD schématu dokumenty XML pomocí nástrojů jiných výrobců a načíst schémat XML do databáze.

SQL Server 2008 má provedli několik rozšíření podpory schématu XML, včetně podpory lax ověření, lepší zpracování xs:datum, čas and xs:dateTime instance dat a byla přidána podpora pro typy seznamu a unie.Ve většině případů změny neovlivní upgradu zkušenosti.Ale používáte-li v serveru SQL Server 2005 povoleny hodnoty typu kolekce schématu XML xs:datum, čas, or xs:dateTime (nebo libovolný podtyp) a proběhnou následující kroky upgradu po připojení k serveru SQL Server 2008 databáze serveru SQL Server 2005:

  1. Pro každý sloupec XML, je zadána s kolekce schémat XML, obsahující prvky nebo atributy, které jsou zadány jako buď xs:anyType, xs:anySimpleType, xs:datum nebo jakékoli jeho podtypy čas jakékoli jejich podtyp nebo xs:dateTime nebo jakékoli jeho podtypy nebo unie nebo dojde k následující typy seznamů obsahující některý z těchto typů:

    1. Všechny indexy XML na sloupec, budou zakázány.

    2. Všechny hodnoty serveru SQL Server 2005 nadále být zastoupeny v Z timezone protože mají byly normalizované k Z timezone.

    3. Jakýkoli xs:datum or xs:dateTime hodnoty, které jsou menší než leden prvního roku 1 povede modulu runtime došlo k chybě při index získá sestavení nebo XQuery nebo příkazy XML jazyk DML získá provedeny proti obsahující hodnoty typu dat XML.

  2. Žádné záporné let v xs:datum or xs:dateTime fasetami nebo výchozí hodnoty v kolekce schématu XML automaticky aktualizována na nejmenší hodnotu povolenou základní xs:datum or xs:dateTime typu (např, 0001 - 01 - 01T00:00:00.0000000Z pro xs:dateTime).

Poznámka, které stále můžete jednoduchý výraz select SQL načíst celý typ dat XML, i v případě, že obsahuje záporné let.Je vhodné nahradit negativní let za rok v rozmezí nově podporovaných nebo změnit typ prvek nebo atribut k xs:řetězec.

Zobrazit:
© 2014 Microsoft