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 tramite il tipo di dati xml. 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 mappare 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

  • Non è possibile eseguire il mapping di <xsd:any> a una colonna che include un tipo di dati xml. 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'utilizzo di una colonna con tipo di dati xml in annotazioni in cui la colonna è supportata, ad esempio in sql:relationship e sql:key-fields, o consentita restituirà errori di SQL Server che non verranno intercettati dai 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 dell'analisi XML disponibile in SQL Server. Una colonna xml può essere mappata come XML tipizzato o XML non tipizzato. In entrambi i casi, SQLXML 4.0 non convalida i dati XML di input. Se i dati XML di input non sono validi o corretti, SQL Server lo segnala a SQLXML e propaga qualsiasi informazione pertinente sugli errori restituita dal server all'utente.

  • SQLXML 4.0 si basa sul supporto limitato per definizioni DTD disponibile in SQL Server. SQL Server consente una definizione DTD interna nei dati di tipo xml, che può essere utilizzata per fornire valori predefiniti e sostituire i riferimenti a 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 istruzioni di elaborazione delle dichiarazioni XML, ad esempio <?xml version='1.0'?>, basate sul comportamento di SQL Server. Al contrario, la dichiarazione XML viene considerata una direttiva al parser XML di SQL Server e i relativi attributi (versione, codifica e autonomia) andranno perduti in seguito alla conversione dei dati nel tipo di dati xml. 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

Concetti