Convenzioni XML
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à vengono 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 ASSL vengono seguite inoltre convenzioni specifiche relative alla cardinalità, l'ereditarietà, gli spazi vuoti, i tipi di dati e i valori predefiniti.
Nota
Per ulteriori informazioni sulla descrizione, sul tipo, sulla cardinalità e sul valore predefinito di ogni elemento, nonché per qualsiasi informazione aggiuntiva rilevante, vedere Elementi XML di Analysis Services Scripting Language (ASSL).
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. Nel frammento XML seguente, ad esempio, viene rappresentata la raccolta Dimensions in 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 questo tipo di oggetti, in ASSL viene utilizzato l'attributo standard type dello spazio dei nomi di istanze XML per indicare l'ereditarietà. Nel frammento XML seguente viene illustrato ad esempio il modo in cui l'attributo type identifica se un elemento Cube eredita da un cubo regolare 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. Le proprietà Name e ID vengono visualizzate ad esempio in molti elementi, ma non sono state promosse a un tipo astratto.
Spazi vuoti
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 ASSL vengono utilizzati i tipi di dati XML Schema Definition Language (XSD) standard seguenti:
Int
Valore integer compreso nell'intervallo tra -231 e 231 - 1.Long
Valore integer compreso nell'intervallo tra -263 e 263 - 1.String
Valore stringa conforme alle regole globali seguenti:Rimozione dei caratteri di controllo.
Eliminazione degli spazi vuoti iniziali e finali.
Mantenimento degli spazi vuoti interni.
Per le proprietà Name e ID sono presenti limitazioni speciali relative ai caratteri validi negli elementi della stringa. Per ulteriori informazioni sulle convenzioni relative a Name e ID, vedere Oggetti e caratteristiche relative.
DateTime
Struttura DateTime di .NET Framework. Un valore DateTime non può essere NULL. La data meno recente supportata dal tipo di dati DataTime è rappresentata dall'1 gennaio 1601, disponibile per i programmatori come DateTime.MinValue. La data meno recente supportata indica che un valore DateTime è mancante.Boolean
Enumerazione con due soli valori, ovvero {true, false} o {0, 1}.
Valori predefiniti
In ASSL vengono utilizzati i valori predefiniti elencati nella tabella seguente.
Tipo di dati XML |
Valore predefinito |
---|---|
Boolean |
False |
String |
"" (stringa vuota) |
Integer oppure Long |
0 (zero) |
Timestamp |
12:00:00 AM, 1/1/0001 (corrispondente all'elemento System.DateTime di .NET Framework con 0 segni di graduazione) |
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. Cube.StorageMode fornisce ad esempio il valore predefinito di Partition.StorageMode. Le regole applicate da ASSL per i valori ereditati sono le stesse utilizzate in DSO (Decision Support Objects) 8.0.
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. Gli elementi Dimension nel frammento XML seguente, ad esempio, sono equivalenti anche se un elemento Dimension contiene un elemento Visible, mentre l'altro elemento Dimension non lo contiene.
<Dimension>
<Name>Product</Name>
</Dimension>
<Dimension>
<Name>Product</ Name>
<Visible>true</Visible>
</Dimension>
Per ulteriori informazioni sui valori predefiniti ereditati, vedere Oggetti e caratteristiche relative.