Comprendere la struttura dello schema schema-structure
La struttura di base di uno schema è descritta di seguito.
Schemi di dati data-schema
Per un <srcschema>
, la struttura è la seguente:
<srcSchema>
<enumeration>
... //definition of enumerations
</enumeration>
<element> //definition of the root <element> (mandatory)
<compute-string/> //definition of a compute-string
<dbindex>
... //definition of indexes
</dbindex>
<key>
... //definition of keys
</key>
<sysFilter>
... //definition of filters
</sysFilter>
<attribute>
... //definition of fields
</attribute>
<element> //definition of sub-<element>
<attribute> //(collection, links or XML)
... //and additional fields
</attribute>
...
</element>
</element>
<methods> //definition of SOAP methods
<method>
...
</method>
...
</methods>
</srcSchema>
Il documento XML di uno schema dati deve contenere l'elemento principale <srcschema>
con gli attributi name e namespace per popolare il nome dello schema e il relativo spazio dei nomi.
<srcSchema name="schema_name" namespace="namespace">
...
</srcSchema>
Per illustrare la struttura di uno schema di dati, utilizziamo i seguenti contenuti XML:
<recipient email="John.doe@aol.com" created="2009/03/12" gender="1">
<location city="London"/>
</recipient>
Con lo schema di dati corrispondente:
<srcSchema name="recipient" namespace="cus">
<element name="recipient">
<attribute name="email"/>
<attribute name="created"/>
<attribute name="gender"/>
<element name="location">
<attribute name="city"/>
</element>
</element>
</srcSchema>
Descrizione description
Il punto di ingresso dello schema è il suo elemento principale. È facile da identificare perché ha lo stesso nome dello schema e dovrebbe essere l’elemento secondario dell’elemento principale. La descrizione del contenuto inizia con questo elemento.
Nel nostro esempio, l’elemento principale è rappresentato dalla seguente riga:
<element name="recipient">
Gli elementi <attribute>
e <element>
che seguono l'elemento principale vengono utilizzati per definire le posizioni e i nomi degli elementi dati nella struttura XML.
Nello schema di esempio, questi sono:
<attribute name="email"/>
<attribute name="created"/>
<attribute name="gender"/>
<element name="location">
<attribute name="city"/>
</element>
Si applicano le seguenti regole:
-
Ogni
<element>
e<attribute>
deve essere identificato per nome tramite l'attributo name.note important IMPORTANT Il nome dell'elemento deve essere conciso, preferibilmente in inglese, e includere solo i caratteri consentiti nelle regole di denominazione XML. -
Solo gli elementi
<element>
possono contenere<attribute>
elementi e<element>
elementi nella struttura XML. -
Un elemento
<attribute>
deve avere un nome univoco all'interno di<element>
. -
Si consiglia di utilizzare
<elements>
nelle stringhe di dati su più righe.
Tipi di dati data-types
Il tipo di dati viene immesso tramite l'attributo type negli elementi <attribute>
e <element>
.
Un elenco dettagliato è disponibile nella descrizione dell'elemento <attribute>
e dell'elemento <element>
.
Quando questo attributo non viene popolato, stringa è il tipo di dati predefinito a meno che l'elemento non contenga elementi figlio. In caso affermativo, viene utilizzato solo per strutturare gli elementi in modo gerarchico (<location>
elemento nel nostro esempio).
Negli schemi sono supportati i seguenti tipi di dati:
-
stringa: stringa di caratteri. Esempi: un nome, una città, ecc.
La dimensione può essere specificata tramite l'attributo length (facoltativo, valore predefinito "255").
-
booleano: campo booleano. Esempio di valori possibili: true/false, 0/1, sì/no, ecc.
-
byte, short, long: valori interi (1 byte, 2 byte, 4 byte). Esempi: un’età, un numero di conto, un numero di punti, ecc.
-
double: numero a virgola mobile a precisione doppia. Esempi: un prezzo, un tasso, ecc.
-
date, datetime: date e date + ore. Esempi: una data di nascita, una data di acquisto, ecc.
-
datetimenotz: data + ora senza dati relativi al fuso orario.
-
intervallo di tempo: durate. Esempio: anzianità.
-
memo: campi di testo lunghi (più righe). Esempi: una descrizione, un commento, ecc.
-
uuid: campi "uniqueidentifier" per supportare un GUID (supportato solo in Microsoft SQL Server).
note note NOTE Per contenere un campo uuid in RDBMS diverso da Microsoft SQL Server, è necessario aggiungere la funzione the newuuid()
e completarla con il relativo valore predefinito.
Di seguito è riportato uno schema di esempio con i tipi immessi:
<srcSchema name="recipient" namespace="cus">
<element name="recipient">
<attribute name="email" type="string" length="80"/>
<attribute name="created" type="datetime"/>
<attribute name="gender" type="byte"/>
<element name="location">
<attribute name="city" type="string" length="50"/>
</element>
</element>
</srcSchema>
Mappatura dei tipi di dati Adobe Campaign/DBMS mapping-the-types-of-adobe-campaign-dbms-data
La tabella seguente elenca le mappature per i tipi di dati generati da Adobe Campaign per i diversi sistemi di gestione del database.
Properties properties
Gli elementi <elements>
e <attributes>
dello schema dati possono essere arricchiti con varie proprietà. Puoi popolare un’etichetta per descrivere l’elemento corrente.
Etichette e descrizioni labels-and-descriptions
-
La proprietà label consente di immettere una breve descrizione.
note note NOTE L’etichetta è associata alla lingua corrente dell’istanza. Esempio:
code language-sql <attribute name="email" type="string" length="80" label="Email"/>
L’etichetta viene visualizzata nel modulo di input della console client di Adobe Campaign:
-
La proprietà desc consente di immettere una descrizione lunga.
La descrizione viene visualizzata nel modulo di input nella barra di stato della finestra principale della console client di Adobe Campaign.
note note NOTE La descrizione è associata alla lingua corrente dell’istanza. Esempio:
code language-sql <attribute name="email" type="string" length="80" label="Email" desc="Email of recipient"/>
Valori predefiniti default-values
Utilizzare la proprietà default per definire un'espressione che restituisce un valore predefinito durante la creazione del contenuto.
Il valore deve essere un'espressione compatibile con il linguaggio XPath. Per ulteriori informazioni, consulta Riferimento con XPath.
Esempio:
-
Data corrente: default="GetDate()"
-
Contatore: default="'FRM'+CounterValue('myCounter')"
In questo esempio, il valore predefinito viene costruito utilizzando la concatenazione di una stringa e chiamando la funzione CounterValue con un nome di contatore libero. Il numero restituito viene incrementato di uno a ogni inserimento.
note note NOTE Nella console del client Adobe Campaign, passare alla cartella Administration > Counters di Esplora risorse per gestire i contatori.
Per collegare un valore predefinito a un campo, è possibile utilizzare <default>
o <sqldefault>
campo.
<default>
: consente di precompilare il campo con un valore predefinito durante la creazione di entità. Il valore non sarà un valore SQL predefinito.
<sqldefault>
: ti consente di avere un valore aggiunto durante la creazione di un campo. Questo valore viene visualizzato come risultato SQL. Durante un aggiornamento dello schema, questo valore influisce solo sui nuovi record.
Enumerazioni enumerations
Enumerazione aperta free-enumeration
La proprietà userEnum consente di definire un'enumerazione aperta per archiviare e visualizzare i valori immessi tramite questo campo.
La sintassi è la seguente:
userEnum="name of enumeration"
Questi valori vengono visualizzati in un elenco a discesa dal modulo di input:
Imposta enumerazione set-enumeration
La proprietà enum consente di definire un'enumerazione fissa utilizzata quando l'elenco dei valori possibili è noto in anticipo.
L'attributo enum fa riferimento alla definizione di una classe di enumerazione popolata nello schema al di fuori dell'elemento principale.
Le enumerazioni consentono di selezionare un valore da un elenco a discesa anziché immetterlo in un campo di input regolare:
Esempio di dichiarazione di enumerazione nello schema dati:
<enumeration name="gender" basetype="byte" default="0">
<value name="unknown" label="Not specified" value="0"/>
<value name="male" label="male" value="1"/>
<value name="female" label="female" value="2"/>
</enumeration>
Enumerazione dichiarata all'esterno dell'elemento principale tramite l'elemento <enumeration>
.
Le proprietà di enumerazione sono le seguenti:
- baseType: tipo di dati associato ai valori
- label: descrizione dell'enumerazione
- name: nome dell'enumerazione
- default: valore predefinito dell'enumerazione
I valori di enumerazione sono dichiarati nell'elemento <value>
con i seguenti attributi:
- nome: nome del valore archiviato internamente
- label: etichetta visualizzata nell'interfaccia grafica
enumerazione del dbenum dbenum-enumeration
*La proprietà dbenum consente di definire un'enumerazione con proprietà simili a quelle della proprietà enum.
Tuttavia, l'attributo name non memorizza il valore internamente, ma memorizza un codice che consente di estendere le tabelle interessate senza modificarne lo schema.
Questa enumerazione viene utilizzata per specificare la natura delle campagne, ad esempio.
Esempio example
Di seguito è riportato uno schema di esempio con le proprietà compilate:
<srcSchema name="recipient" namespace="cus">
<enumeration name="gender" basetype="byte">
<value name="unknown" label="Not specified" value="0"/>
<value name="male" label="male" value="1"/>
<value name="female" label="female" value="2"/>
</enumeration>
<element name="recipient">
<attribute name="email" type="string" length="80" label="Email" desc="Email of recipient"/>
<attribute name="created" type="datetime" label="Date of creation" default="GetDate()"/>
<attribute name="gender" type="byte" label="gender" enum="gender"/>
<element name="location" label="Location">
<attribute name="city" type="string" length="50" label="City" userEnum="city"/>
</element>
</element>
</srcSchema>
Raccolte collections
Una raccolta è un elenco di elementi con lo stesso nome e lo stesso livello gerarchico.
L'attributo unbound con valore "true" consente di popolare un elemento della raccolta.
Esempio: definizione dell'elemento di raccolta <group>
nello schema.
<element name="group" unbound="true" label="List of groups">
<attribute name="label" type="string" label="Label"/>
</element>
Con la proiezione del contenuto XML:
<group label="Group1"/>
<group label="Group2"/>
Riferimento a XPath referencing-with-xpath
Il linguaggio XPath viene utilizzato in Adobe Campaign per fare riferimento a un elemento o attributo appartenente a uno schema di dati.
XPath è una sintassi che consente di individuare un nodo nella struttura di un documento XML.
Gli elementi sono designati dal loro nome e gli attributi sono designati dal nome preceduto dal carattere "@".
Esempio:
- @email: seleziona l'e-mail,
- location/@city: seleziona l'attributo "city" nell'elemento
<location>
- …/@email: seleziona l'indirizzo e-mail dall'elemento padre dell'elemento corrente
- gruppo
[1]/@label
: seleziona l'attributo "label" figlio del primo elemento della raccolta<group>
- gruppo
[@label='test1']
: seleziona l'attributo "label" figlio dell'elemento<group>
e contiene il valore "test1"
- percorso/@city non valido. Utilizzare
[location/@city]
[@email]
e @email sono equivalenti
È inoltre possibile definire espressioni complesse, ad esempio le seguenti operazioni aritmetiche:
- @gender+1: aggiunge 1 al contenuto dell'attributo gender,
- @email + '('+@created+')': crea una stringa raccogliendo il valore dell'indirizzo e-mail aggiunto alla data di creazione tra parentesi (per il tipo di stringa, racchiudi la costante tra virgolette).
Sono state aggiunte funzioni di alto livello alle espressioni per arricchire il potenziale di questo linguaggio.
Puoi accedere all’elenco delle funzioni disponibili tramite qualsiasi editor di espressioni nella console client di Adobe Campaign:
Esempio:
- GetDate(): restituisce la data corrente
- Year(@created): restituisce l'anno della data contenuta nell'attributo "created"
- GetEmailDomain(@email): restituisce il dominio dell'indirizzo e-mail
Creazione di una stringa tramite la stringa di calcolo building-a-string-via-the-compute-string
Una stringa di calcolo è un'espressione XPath utilizzata per creare una stringa che rappresenta un record in una tabella associata allo schema. La stringa di calcolo viene utilizzata principalmente nell'interfaccia grafica per visualizzare l'etichetta di un record selezionato.
La stringa di calcolo è definita tramite l'elemento <compute-string>
nell'elemento principale dello schema dati. Un attributo expr contiene un'espressione XPath per calcolare la visualizzazione.
Esempio: stringa di calcolo della tabella dei destinatari.
<srcSchema name="recipient" namespace="nms">
<element name="recipient">
<compute-string expr="@lastName + ' ' + @firstName +' (' + @email + ')' "/>
...
</element>
</srcSchema>
Risultato della stringa calcolata per un destinatario: Fai John (john.doe@aol.com)
Ulteriori informazioni
Per ulteriori informazioni, consulta i seguenti collegamenti: