Delen via


Xml-gegevenstypeondersteuning in SQLXML 4.0

Van toepassing op:SQL ServerAzure SQL Database

Vanaf SQL Server 2005 (9.x) ondersteunt SQL Server XML-getypeerde data met behulp van het xml-datatype . Dit onderwerp geeft informatie over hoe SQLXML 4.0 instanties van het xml-datatype herkent en ondersteuning hiervoor implementeert.

Werken met xml Data Types

Om meer te begrijpen over hoe je met SQL-tabellen werkt die xml-datatypekolommen implementeren, worden de volgende voorbeelden gegeven:

Opdracht Example Onderwerp
Hoe een xml-kolom in kaart te brengen en op te nemen in een XML-weergave "Een XML-element toewijzen aan een XML-datatypekolom" Standaardmapping van XSD-elementen en attributen naar tabellen en kolommen (SQLXML 4.0)
Hoe je gegevens invoegt in een xml-kolom met updategrammen "Gegevens invoegen in een XML-datatypekolom" Gegevens invoegen met XML-updategrammen (SQLXML 4.0)
Bulkload XML-gegevens in een xml-kolom "Bulkladen in xml Data Type kolommen" XML Bulk Load Voorbeelden (SQLXML 4.0)

Richtlijnen en beperkingen

  • <XSD:Any> kan niet worden toegewezen aan een kolom met een XML-datatype . Ondersteuning in SQLXML voor dit scenario wordt geleverd via de sql:overflow-field annotation. Een andere oplossing is om een xml-datatypeveld te mappen als een element van xsd:anyType. Deze oplossing wordt gedemonstreerd in het voorbeeld "Mapping an XML element to an XML data type" zoals hierboven in de tabel wordt genoemd.

  • XPath-query's in de inhoud van xml-datatypekolommen worden niet ondersteund.

  • Het gebruik van een xml-datatypekolom in annotaties waar dit niet wordt ondersteund (zoals sql:relationship en sql:key-fields) of toegestaan, zal resulteren in SQL Server-fouten die niet worden gevangen door middenklasse componenten die SQLXML 4.0 implementeren. Dit gebeurt omdat SQLXML geen SQL-type-informatie vereist. Dit lijkt op het gedrag van SQLXML voor andere datatypen, zoals BLOB- en binaire types.

  • Het mappen van xml-kolommen wordt alleen ondersteund voor XSD-schema's. XDR-schema's ondersteunen geen mapping XML-kolommen .

  • SQLXML 4.0 is afhankelijk van de XML-parsing ondersteuning die in SQL Server wordt geboden. Een xml-kolom kan worden toegewezen als getypte XML of ongetypeerde XML. In beide gevallen valideert SQLXML 4.0 de invoer-XML niet. Als invoer-XML niet geldig of goed gevormd is, rapporteert SQL Server dit aan SQLXML en verspreidt alle relevante foutinformatie die door de server wordt teruggegeven naar de gebruiker.

  • SQLXML 4.0 is afhankelijk van de beperkte ondersteuning voor DTD's die in SQL Server wordt geboden. SQL Server maakt een interne DTD mogelijk in xml-datatypegegevens, die kan worden gebruikt om standaardwaarden te leveren en entiteitsreferenties te vervangen door hun uitgebreide inhoud. SQLXML geeft de XML-gegevens "zoals ze zijn" (inclusief de interne DTD) door aan de server. Je kunt DTD's omzetten naar XML Schema (XSD) documenten met tools van derden, en de data laden met inline XSD-schema's in de database.

  • SQLXML 4.0 bewaart geen XML-declaratie-verwerkingsinstructies (bijvoorbeeld ) op basis van het gedrag van SQL Server. In plaats daarvan wordt de XML-declaratie behandeld als een richtlijn voor de SQL Server XML-parser, en de attributen (versie, codering en standalone) gaan verloren nadat de data is omgezet naar het xml-datatype . De XML-gegevens worden intern opgeslagen als UCS-2. Alle andere verwerkingsinstructies in de XML-instantie blijven behouden; ze zijn toegestaan in de xml-kolom en kunnen worden ondersteund door SQLXML.

Zie ook

XML-gegevens (SQL Server)