Convenzioni XML di ASSL
Si applica a:
SQL Server Analysis Services
Azure Analysis Services
Power BI Premium
Nel linguaggio ASSL (Analysis Services Scripting Language) la gerarchia di oggetti viene rappresentata come un set di tipi di elementi, ciascuno dei quali definisce gli elementi figlio che può contenere.
Per rappresentare la gerarchia di oggetti, in ASSL vengono utilizzate le convenzioni XML seguenti:
Tutti gli oggetti e le proprietà sono rappresentati come elementi, ad eccezione degli attributi XML standard, ad esempio 'xml:lang'.
Sia i nomi di elemento che i valori di enumerazione seguono la convenzione di denominazione di Microsoft .NET Framework basata sulla convenzione Pascal senza caratteri di sottolineatura.
La combinazione di lettere maiuscole e minuscole di tutti i valori viene mantenuta. I valori relativi alle enumerazioni rispettano inoltre la distinzione tra maiuscole e minuscole.
Oltre all'elenco di convenzioni indicato, in Analysis Services vengono seguite inoltre convenzioni specifiche relative alla cardinalità, l'ereditarietà, gli spazi vuoti, i tipi di dati e i valori predefiniti.
Cardinalità
Quando la cardinalità di un elemento è maggiore di 1, è presente una raccolta di elementi XML che incapsula tale elemento. Per il nome della raccolta viene utilizzata la forma plurale degli elementi contenuti nella raccolta stessa. Ad esempio, il frammento XML seguente rappresenta la raccolta Dimensions all'interno di un elemento Database:
<Database>
...
<Dimensions>
<Dimension>
...
</Dimension>
<Dimension>
...
</Dimension>
</Dimensions>
</Database>
``
L'ordine in cui sono visualizzati gli elementi non è importante.
Ereditarietà
L'ereditarietà viene utilizzata quando sono presenti oggetti distinti cui sono associati set di proprietà sovrapposti, ma con differenze significative. Esempi di tali oggetti sovrapposti, ma distinti, sono i cubi virtuali, i cubi collegati e i cubi regolari. Per oggetti sovrapposti ma distinti, Analysis Services utilizza l'attributo di tipo standard dello spazio dei nomi dell'istanza XML per indicare l'ereditarietà. Ad esempio, nel frammento XML seguente viene illustrato come l'attributo type identifica se un elemento Cube eredita da un cubo normale o da un cubo virtuale:
<Cubes>
<Cube xsi:type="RegularCube">
<Name>Sales</Name>
...
</Cube>
<Cube xsi:type="VirtualCube">
<Name>SalesAndInventory</Name>
...
</Cube>
</Cubes>
``
In genere l'ereditarietà non viene utilizzata quando a più tipi è associata una proprietà con lo stesso nome. Ad esempio, le proprietà Name e ID vengono visualizzate in molti elementi, ma queste proprietà non sono state promosse a un tipo astratto.
Spazio vuoto
Gli spazi vuoti all'interno di un valore di elemento vengono mantenuti, mentre gli spazi vuoti iniziali e finali vengono sempre rimossi. Gli elementi seguenti contengono ad esempio lo stesso testo che differisce tuttavia per il numero di spazi vuoti all'interno. Di conseguenza tali elementi vengono considerati come se i relativi valori fossero diversi:
<Description>My text<Description>
<Description>My text<Description>
``
Gli elementi seguenti differiscono invece solo per gli spazi vuoti iniziali e finali e vengono pertanto considerati come se i relativi valori fossero equivalenti:
<Description>My text<Description>
<Description> My text <Description>
``
Tipi di dati
In Analysis Services vengono utilizzati i seguenti tipi di dati XML Schema Definition Language (XSD) standard:
Int
Valore intero compreso nell'intervallo compreso tra -231 e 231 - 1.
Long
Valore intero compreso nell'intervallo da -263 a 263 - 1.
Stringa
Valore stringa conforme alle regole globali seguenti:
Rimozione dei caratteri di controllo.
Eliminazione degli spazi vuoti iniziali e finali.
Mantenimento degli spazi vuoti interni.
Le proprietà Name e ID presentano limitazioni speciali per i caratteri validi negli elementi stringa. Per altre informazioni sulle convenzioni di nome e ID, vedere Oggetti ASSL e caratteristiche degli oggetti.
DateTime
Struttura DateTime dall'.NET Framework. Un valore DateTime non può essere NULL. La data più bassa supportata dal tipo di dati DataTime è il 1° gennaio 1601, disponibile per i programmatori come DateTime.MinValue. La data minima supportata indica che manca un valore DateTime.
Boolean
Enumerazione con due soli valori, ovvero {true, false} o {0, 1}.
Valori predefiniti
In Analysis Services vengono utilizzati i valori predefiniti elencati nella tabella seguente.
| Tipo di dati XML | Valore predefinito |
|---|---|
| Boolean | Falso |
| Stringa | "" (stringa vuota) |
| Integer o Long | 0 (zero) |
| Timestamp | 12:00:00 AM, 1/1/0001 (corrispondente a un oggetto System.DateTime di .NET Frameworks con 0 tick) |
Un elemento presente, ma vuoto, viene interpretato come se il relativo valore fosse una stringa Null e non quello predefinito.
Valori predefiniti ereditati
Alcune proprietà specificate per un oggetto forniscono i valori predefiniti per la stessa proprietà in oggetti figlio o discendenti. Ad esempio, Cube.StorageMode fornisce il valore predefinito per Partition.StorageMode. Le regole che Analysis Services applica ai valori predefiniti ereditati sono i seguenti:
Quando in XML la proprietà per l'oggetto figlio è Null, per impostazione predefinita viene utilizzato il valore ereditato. Se tuttavia si esegue una query relativa al valore nel server, viene restituito il valore Null dell'elemento XML.
Non è possibile determinare a livello di programmazione se la proprietà di un oggetto figlio è stata impostata direttamente su tale oggetto oppure se è stata ereditata.
Per alcuni elementi sono specificati valori predefiniti che si applicano quando l'elemento è mancante. Ad esempio, gli elementi Dimension nel frammento XML seguente sono equivalenti anche se un elemento Dimension contiene un elemento Visible, mentre l'altro elemento Dimension no.
<Dimension>
<Name>Product</Name>
</Dimension>
<Dimension>
<Name>Product</ Name>
<Visible>true</Visible>
</Dimension>
Per altre informazioni sulle impostazioni predefinite ereditate, vedere Oggetti ASSL e caratteristiche degli oggetti.