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'annotazionesql:overflow-field
. Una soluzione alternativa consiste nell'eseguire il mapping di un campo con tipo di datixml
come elemento dixsd: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 esempiosql:relationship
esql: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 colonnexml
.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 colonnaxml
e possono essere supportate in SQLXML.