Innalzamento di livello delle proprietà
La promozione delle proprietà implica la promozione di nodi Field Element o Field Attribute in uno schema da distinguere campi o campi proprietà. È anche possibile promuovere i nodi Record come campi delle proprietà se hanno contenuto semplice (proprietà Tipo di contenuto del nodo Record impostato su SimpleContent). Questa sezione fornisce istruzioni dettagliate per promuovere i nodi come campi distinti o come campi delle proprietà.
Per promuovere un record (con contenuto semplice), l'elemento Field o il nodo Attributocampo come campo proprietà, è prima possibile definire un tipo speciale di schema denominato schema di proprietà. Gli schemi delle proprietà definiscono un set non strutturato di nodi elemento field in cui si promuove record (con contenuto semplice), elemento campo o nodi attributo campo . Per istruzioni dettagliate per la creazione di uno schema di proprietà, vedere Come creare schemi delle proprietà.
In alternativa, è possibile usare la funzionalità Promozione rapida , che creerà e aggiornerà automaticamente un singolo schema di proprietà ogni volta che si promuove un nuovo elemento Field, Attributo campo o Record (con contenuto semplice).
Nota
È possibile promuovere un campo sia come campo distinto che come campo proprietà.
Nota
La funzionalità Promozione rapida modifica lo schema delle proprietà inserendo una nuova proprietà con il nome del nodo promosso.
Importante
Non spostare o rinominare un campo nello schema dopo averlo alzato di livello. Spostando o rinominando un campo dello schema, l'XPath che definisce la posizione del campo alzato di livello non viene aggiornato nell'Editor BizTalk.
Tipi di dati CLR e XSD
In alcuni casi, come avviene nell'innalzamento di livello delle proprietà, i tipi di dati XSD vengono alzati al livello CLR (Common Language Runtime). Nella tabella seguente sono riportati i tipi di dati XSD che è possibile alzare di livello e i corrispondenti tipi di dati CLR.
Tipo di dati XSD | Tipo di dati CLR |
---|---|
anyURI | Stringa |
Boolean | Boolean |
Byte | sbyte |
Data | Datetime |
dateTime | Datetime |
Decimal | Decimal |
Double | Double |
ENTITY | string |
Float | Single |
gDay | Datetime |
gMonth | Datetime |
gMonthDay | Datetime |
gYear | Datetime |
gYearMonth | Datetime |
ID | string |
IDREF | string |
Int | Int32 |
Integer | Decimal |
Linguaggio | string |
Nome | string |
NCName | string |
negativeInteger | Decimal |
NMTOKEN | string |
nonNegativeInteger | Decimal |
nonPositiveInteger | Decimal |
normalizedString | string |
NOTATION | string |
positiveInteger | Decimal |
QName | string |
Short | Int16 |
string | string |
Ora | Datetime |
token | string |
unsignedByte | Byte |
unsignedInt | UInt32 |
unsignedShort | UInt16 |
Nota
I tipi di dati XSD base64Binary, duration, ENTITES, hexBinary, IDREFS, long, NMTOKENS e unsignedLong non sono supportati per l'innalzamento di livello.
Limitazioni per l'innalzamento di livello delle proprietà
Quando si esegue l'innalzamento di livello delle proprietà, tenere presente quanto segue:
Le proprietà innalzate di livello sono limitate a 256 caratteri di lunghezza mentre le proprietà scritte non hanno alcuna limitazione di lunghezza.
Le proprietà innalzate di livello sono utilizzate nel routing dei messaggi e sono di dimensioni limitate per motivi di efficienza in termini di confronto e di memorizzazione. Mentre le proprietà scritte non hanno nessun limite rigido di dimensioni, l'utilizzo di valori troppo elevati nel contesto avrà un impatto sulle prestazioni poiché quei valori devono ancora essere elaborati e passati con il messaggio. I campi differenziati sono esempi di proprietà scritte.
I nodi di record non possono mai essere promossi come campi distinti.
Le proprietà innalzate di livello sono limitate a elementi e attributi non ripetuti.
Non alzare di livello alla stessa proprietà campi appartenenti allo stesso nodo radice. Un innalzamento di questo di tipo comporta la generazione di errori di compilazione o di distribuzione.
Nel contesto di un messaggio alcune proprietà non sono disponibili poiché non sono state innalzate di livello, ad esempio la proprietà BTS.ReceiveLocationName. Se è possibile aggiungere un nuovo schema proprietà o un nuovo progetto BizTalk Server allo sviluppo, sarà possibile accedere a questa proprietà da un'orchestrazione.
I valori delle proprietà sono identificati dallo spazio dei nomi di destinazione e dal nome della proprietà. Nel seguente esempio viene illustrato come accedere all'indirizzo di ricezione nel codice.
string receiveLocationName = pInMsg.Context.Read("ReceiveLocationName", sysNamespace);