Requisiti e limitazioni per l'utilizzo di raccolte di XML Schema nel server
Esistono alcune limitazioni relative alla convalida del linguaggio XML Schema Definition (XSD) per le colonne SQL che utilizzano il tipo di dati xml. La tabella seguente fornisce informazioni dettagliate su tali limitazioni, nonché alcune linee guida per modificare lo schema XSD in modo che sia supportato da SQL Server. Gli argomenti in questa sezione forniscono informazioni aggiuntive su limiti specifici e indicazioni per il loro utilizzo.
Elemento |
Limitazione |
---|---|
minOccurs e maxOccurs |
I valori degli attributi minOccurs e maxOccurs devono essere contenibili in Integer a 4 byte. Gli schemi che non sono conformi vengono rifiutati dal server. |
<xsd:choice> |
SQL Server rifiuta gli schemi che includono una particella <xsd:choice> senza elementi figlio, a meno che la particella non sia definita con un attributo minOccurs di valore pari a zero. |
<xsd:include> |
Attualmente, SQL Server non supporta questo elemento. Gli elementi XML Schema che includono tale elemento vengono rifiutati dal server. Per risolvere questo problema, è possibile eseguire la pre-elaborazione di XML Schema che includono la direttiva <xsd:include> per copiare e unire il contenuto di tutti gli schemi inclusi in un singolo schema da caricare nel server. Per ulteriori informazioni, vedere Pre-elaborazione di uno schema per unire schemi inclusi. |
<xsd:key>, <xsd:keyref> e <xsd:unique> |
Attualmente, SQL Server non supporta questi seguenti vincoli basati su XSD per imporre l'univocità o stabilire chiavi e relativi riferimenti. Non è possibile registrare XML Schema che contengono questi elementi. |
<xsd:redefine> |
SQL Server non supporta questo elemento. Per informazioni su un'altra modalità di aggiornamento degli schemi, vedere Elemento <xsd:redefine>. |
Valori <xsd:simpleType> |
SQL Server supporta soltanto la precisione in millisecondi per i tipi semplici che hanno componenti secondi diversi rispetto a xs:time e xs:dateTime e una precisione da 100 nanosecondi per xs:time e xs:dateTime. SQL Server pone limiti a tutte le enumerazioni di tipo semplice XSD. SQL Server non supporta l'utilizzo del valore "NaN" nelle dichiarazioni <xsd:simpleType>. Per ulteriori informazioni, vedere Valori per dichiarazioni <xsd:simpleType>. |
xsi:schemaLocation e xsi:noNamespaceSchemaLocation |
SQL Server ignora questi attributi se sono presenti nei dati dell'istanza XML inseriti in una colonna o una variabile con tipo di dati xml. |
xs:QName |
SQL Server non supporta tipi derivati da xs:QName che utilizzano un elemento di restrizione di XML Schema. SQL Server non supporta tipi unione con xs:QName come elemento membro. Per ulteriori informazioni, vedere Xs:Tipo QName. |
Aggiunta di membri a un gruppo di sostituzione esistente |
Non è possibile aggiungere membri a un gruppo di sostituzione esistente in una raccolta di XML Schema. La restrizione relativa a un gruppo di sostituzione in un elemento XML Schema impone che l'elemento Head e tutti gli elementi membri corrispondenti vengano definiti nella stessa istruzione {CREATE | ALTER} XML SCHEMA COLLECTION. |
Forme canoniche e restrizioni di pattern |
La rappresentazione canonica di un valore non deve violare la restrizione del pattern per il tipo corrispondente. Per ulteriori informazioni, vedere Forme canoniche e restrizioni di pattern. |
Facet di enumerazione |
SQL Server non supporta XML Schema con tipi che dispongono di facet basati su pattern o di enumerazioni che violano tali facet. |
Facet per la lunghezza |
I facet length, minLength e maxLength vengono archiviati come tipo long, un tipo a 32 bit. Pertanto, l'intervallo di valori accettabili per tali valori è 2^31. |
Attributo ID |
Ogni componente del XML Schema può disporre di un relativo attributo ID. SQL Server impone l'univocità delle dichiarazioni <xsd:attribute> di tipo ID, ma non archivia tali valori. L'ambito di applicazione dell'univocità è l'istruzione {CREATE | ALTER} XML SCHEMA COLLECTION. |
Tipo ID |
SQL Server non supporta gli elementi di tipo xs:ID, xs:IDREF o xs:IDREFS. Uno schema potrebbe non dichiarare elementi di questo tipo, o elementi derivati dalla restrizione o dall'estensione da questo tipo. |
Spazio dei nomi locale |
Lo spazio dei nomi locale deve essere specificato in modo esplicito per l'elemento <xsd:any>. SQL Server rifiuta schemi che utilizzano una stringa vuota ("") come valore per l'attributo dello spazio dei nomi. SQL Server richiede invece l'utilizzo esplicito di "##local" per indicare un elemento o un attributo non qualificato come istanza del carattere jolly. |
Tipo misto e contenuto semplice |
SQL Server non supporta la restrizione di un tipo misto in un contenuto semplice. Per ulteriori informazioni, vedere Tipo misto e contenuto semplice. |
Tipo NOTATION |
SQL Server non supporta il tipo NOTATION. |
Condizioni di memoria insufficiente |
Durante l'utilizzo di raccolte di XML Schema di grandi dimensioni, può verificarsi una condizione di memoria insufficiente. Per soluzioni a questo problema, vedere Raccolte di XML Schema di grandi dimensioni e condizioni di memoria insufficiente. |
Valori ripetuti |
SQL Server rifiuta gli schemi in cui il blocco o l'attributo finale include valori ripetuti quali "restriction restriction" ed "extension extension". |
Identificatori dei componenti di schema |
SQL Server limita gli identificatori dei componenti di schema a una lunghezza massima di 1000 caratteri Unicode. Non vengono inoltre supportate le coppie di caratteri surrogati all'interno degli identificatori. |
Informazioni sul fuso orario |
In SQL Server 2008 e versioni successive, le informazioni sul fuso orario sono completamente supportate per valori xs:date, xs:time e xs:dateTime per la convalida di XML Schema. Con la modalità di compatibilità con le versioni precedenti di SQL Server 2005, le informazioni sul fuso orario vengono sempre normalizzata su Coordinated Universal Time (Greenwich Mean Time). Per gli elementi di tipo dateTime, il server converte l'orario specificato in GMT mediante il valore di offset ("-05:00"). |
Tipi unione |
SQL Server non supporta restrizioni da tipi unione. |
Decimali di precisione delle variabili |
SQL Server non supporta valori decimali con precisione variabile. Il tipo xs:decimal rappresenta numeri decimali con precisione arbitraria. I processori XML conformi devono supporto numeri decimali con almeno totalDigits=18. SQL Server supporta totalDigits=38, ma con un limite per le cifre frazionarie pari a 10. Tutti i valori xs:decimal per i quali viene creata un'istanza vengono rappresentati internamente dal server tramite il tipo numeric SQL (38, 10). |
Contenuto della sezione
Argomento |
Descrizione |
---|---|
Spiegazione delle forme canoniche e delle restrizioni di pattern. |
|
Descrizione delle limitazioni dell'utilizzo di Elementi dei caratteri jolly, della convalida lax e dell'anyType con le raccolte di XML Schema. |
|
Viene illustrata la limitazione all'uso dell'elemento <xsd:redefine> e viene descritta una soluzione alternativa. |
|
Descrizione del limite relativo al tipo xs:QName. |
|
Vengono descritte le limitazioni applicate alle dichiarazioni <xsd:simpleType>. |
|
Descrizione della limitazione relativa ai facet dell'enumerazione. |
|
Descrizione del limite relativo alla restrizione di un tipo misto a un contenuto semplice. |
|
Raccolte di XML Schema di grandi dimensioni e condizioni di memoria insufficiente |
Indicazione delle soluzioni per la condizione di memoria insufficiente che qualche volta si verifica con le raccolte di schemi di grandi dimensioni. |
Descrizione dei limiti relativi ai modelli di contenuto non deterministici. |
Vedere anche
Riferimento
Concedere autorizzazioni per una raccolta di XML Schema
Raccolte di XML Schema (SQL Server)