Condividi tramite


Supporto del tipo di dati xml in SQLXML 4.0

A partire da SQL Server 2005, SQL Server supporta i dati tipizzati XML usando il xml tipo di dati. In questo argomento viene descritto il modo in cui SQLXML 4.0 riconosce istanze del tipo di dati xml e ne implementa il supporto.

Utilizzo dei tipi di dati xml

Per una migliore comprensione dell'utilizzo di tabelle SQL che implementano colonne con tipo di dati xml, vengono forniti gli esempi seguenti:

Attività Esempio Argomento
Come eseguire il mapping e includere una colonna xml in una vista XML "Mapping di un elemento XML a una colonna con tipo di dati XML" Mapping predefinito di elementi e attributi XSD a tabelle e colonne (SQLXML 4.0)
Come inserire dati in una colonna xml con updategram "Inserimento di dati in una colonna con tipo di dati XML" Inserimento di dati mediante updategram XML (SQLXML 4.0)
Caricamento bulk di dati XML in una colonna xml "Caricamento bulk in colonne con tipo di dati xml" Esempi di caricamento bulk XML (SQLXML 4.0)

Linee guida e limitazioni

  • <xsd:any> non può essere mappato a una colonna, incluso un xml tipo di dati. Il supporto in SQLXML per questo scenario viene fornito tramite l'annotazione sql:overflow-field. Una soluzione alternativa consiste nell'eseguire il mapping di un campo con tipo di dati xml come elemento di xsd:anyType. Questa soluzione alternativa viene illustrata nell'esempio "Mapping di un elemento XML a una colonna con tipo di dati XML" citato nella tabella precedente.

  • Le query XPath nel contenuto di colonne con tipo di dati xml non sono supportate.

  • L'uso di una xml colonna del tipo di dati nelle annotazioni in cui non è supportato (ad esempio sql:relationship e sql:key-fields) o consentito genera errori SQL Server che non verranno intrappolati da componenti di livello intermedio che implementano SQLXML 4.0. Questo problema si verifica in quanto SQLXML non richiede informazioni sul tipo SQL. Questo comportamento è simile al comportamento di SQLXML per altri tipi di dati, ad esempio i tipi BLOB e binary.

  • Il mapping di colonne xml è supportato solo per gli schemi XSD. Gli schemi XDR non supportano il mapping di colonne xml.

  • SQLXML 4.0 si basa sul supporto di analisi XML fornito in SQL Server. È possibile eseguire il mapping di una colonna xml come XML tipizzato o XML non tipizzato. In entrambi i casi, SQLXML 4.0 non convalida i dati XML di input. Se il codice XML di input non è valido o ben formato, SQL Server lo segnala a SQLXML e propaga eventuali informazioni di errore rilevanti restituite dal server all'utente.

  • SQLXML 4.0 si basa sul supporto limitato per I DTD forniti in SQL Server. SQL Server consente un DTD interno nei xml dati dei tipi di dati, che possono essere usati per fornire valori predefiniti e per sostituire i riferimenti alle entità con il relativo contenuto espanso. SQLXML passa i dati XML "come sono", inclusa la definizione DTD interna, al server. È possibile convertire definizioni DTD in documenti XSD (XML Schema) utilizzando strumenti di terze parti e caricare i dati con schemi XSD inline nel database.

  • SQLXML 4.0 non mantiene le istruzioni di elaborazione delle dichiarazioni XML, ad esempio , in base al comportamento di SQL Server. La dichiarazione XML viene invece considerata come direttiva per il parser XML SQL Server e i relativi attributi (versione, codifica e autonomo) vengono persi dopo la conversione dei dati nel xml tipo di dati. I dati XML vengono archiviati internamente come UCS-2. Tutte le altre istruzioni di elaborazione nell'istanza XML vengono mantenute, sono consentite nella colonna xml e possono essere supportate in SQLXML.

Vedere anche

Dati XML (SQL Server)