Struttura dello schema

La struttura di base di un <srcschema> è 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 gli attributi <srcschema> root con gli attributi name e namespace per compilare il nome dello schema e il relativo spazio dei nomi.

<srcSchema name="schema_name" namespace="namespace">
...
</srcSchema>

È possibile utilizzare il contenuto XML seguente per illustrare la struttura di uno schema dati:

<recipient email="John.doe@aol.com" created="2009/03/12" gender="1"> 
  <location city="London"/>
</recipient>

Con lo schema 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

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 consentono di definire le posizioni e i nomi degli elementi di dati nella struttura XML.

Nel nostro schema di esempio, questi sono:

<attribute name="email"/>
<attribute name="created"/>
<attribute name="gender"/>
<element name="location">
  <attribute name="city"/>
</element>

Devono essere rispettate le seguenti regole:

  • Ogni <element> e <attribute> deve essere identificato per nome tramite l'attributo name.

    IMPORTANTE

    Il nome dell'elemento deve essere conciso, preferibilmente in inglese, e includere solo caratteri autorizzati in conformità alle regole di denominazione XML.

  • Solo gli elementi <element> possono contenere elementi <attribute> e <element> nella struttura XML.

  • Un elemento <attribute> deve avere un nome univoco all'interno di un elemento <element>.

  • È consigliabile utilizzare <elements> nelle stringhe di dati su più righe.

Tipi di dati

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' <element> element.

Se questo attributo non è popolato, string è il tipo di dati predefinito, a meno che l'elemento non contenga elementi secondari. In caso contrario, viene utilizzato solo per strutturare gli elementi gerarchicamente (<location> nel nostro esempio).

I seguenti tipi di dati sono supportati negli schemi:

  • 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 possibili valori: true/false, 0/1, yes/no, ecc.

  • byte, short, long: numeri 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 doppia precisione. 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 i dati del fuso orario.

  • timespan: durate. Esempio: anzianità.

  • nota: campi di testo lunghi (righe multiple). Esempi: una descrizione, un commento, ecc.

  • uuid: Campi "uniqueidentifier" per supportare un GUID (supportati solo in Microsoft SQL Server).

    NOTA

    Per contenere un campo uuid in motori diversi da Microsoft SQL Server, è necessario aggiungere e completare la funzione "newuid()" con il relativo valore predefinito.

Di seguito è riportato lo 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 dati Adobe Campaign/DBMS

Nella tabella seguente sono elencati i mapping per i tipi di dati generati da Adobe Campaign per i diversi sistemi di gestione del database.

Adobe Campaign
PosgreSQL
Oracle
Teradata
DB2
MS SQL
Stringa
VARCHAR(255)
VARCHAR2 (NVARCHAR2 se unicode)
VARCHAR (VARCHAR CARATTERE IMPOSTARE UNICODE se Unicode)
VARCHAR
VARCHAR (NVARCHAR se unicode)
Booleano
SMALLINT
NUMBER(3)
NUMERIC(3)
SMALLINT
TINYINT
Byte
SMALLINT
NUMBER(3)
NUMERIC(3)
SMALLINT
TINYINT
Short
SMALLINT
NUMBER(5)
SMALLINT
SMALLINT
SMALLINT
Double
DOPPIA PRECISIONE
FLOAT
FLOAT
DOUBLE
FLOAT
Long
INTEGER
NUMBER(10)
INTEGER
INTEGER
INT
Int64
BIGINT
NUMBER(20)
NUMERIC(20)
BIGINT
BIGINT
Data
DATE
DATE
TIMESTAMP
DATE
DATETIME
Time
TIME
FLOAT
TIME
TIME
FLOAT
Datetime
TIMESTAMPZ
DATE
TIMESTAMP
TIMESTAMP
MS SQL < 2008: DATETIME
MS SQL >= 2012: DATETIMEOFFSET
Datetimenotz
TIMESTAMPZ
DATE
TIMESTAMP
TIMESTAMP
MS SQL < 2008: DATETIME
MS SQL >= 2012: DATETIME2
Durata
DOPPIA PRECISIONE
FLOAT
FLOAT
DOUBLE
FLOAT
Memo
TEXT
CLOB (NCLOB se Unicode)
CLOB (CLOB CHARACTER SET UNICODE se Unicode)
CLOB(6M)
TEXT (NTEXT se Unicode)
Blob
BLOB
BLOB
BLOB
BLOB(4M)
IMAGE

Properties

Gli elementi <elements> e <attributes> dello schema di dati possono essere arricchiti con diverse proprietà. È possibile compilare un'etichetta per descrivere l'elemento corrente.

Etichette e descrizioni

  • La proprietà label consente di inserire una breve descrizione.

    NOTA

    L'etichetta è associata alla lingua corrente dell'istanza.

    Esempio:

    <attribute name="email" type="string" length="80" label="Email"/>
    

    L'etichetta è visibile dal modulo di input della console client Adobe Campaign :

  • La proprietà desc consente di inserire una descrizione lunga.

    La descrizione è visibile dal modulo di input nella barra di stato della finestra principale della console client Adobe Campaign .

    NOTA

    La descrizione è associata alla lingua corrente dell'istanza.

    Esempio:

    <attribute name="email" type="string" length="80" label="Email" desc="Email of recipient"/>
    

Valori predefiniti

La proprietà default consente di definire un'espressione che restituisce un valore predefinito al momento della creazione del contenuto.

Il valore deve essere un'espressione conforme al linguaggio XPath. Per ulteriori informazioni, fare riferimento a Riferimenti con XPath.

Esempio:

  • Data corrente: default="GetDate()"

  • Contatore: default="'FRM'+CounterValue('myCounter')"

    In questo esempio, il valore predefinito è costruito utilizzando la concatenazione di una stringa e chiamando la funzione CounterValue con un nome contatore gratuito. Il numero restituito viene incrementato di un'unità a ogni inserimento.

    NOTA

    Nella console client Adobe Campaign , il nodo Administration>Counters viene utilizzato per gestire i contatori.

Per collegare un valore predefinito a un campo, è possibile utilizzare la variabile <default> or <sqldefault> field. </sqldefault> </default>

<default> : consente di precompilare il campo con un valore predefinito durante la creazione di entità. Il valore non sarà un valore SQL predefinito.

<sqldefault> : consente di ottenere un valore aggiunto durante la creazione di un campo. Questo valore viene visualizzato come risultato SQL. Durante un aggiornamento dello schema, questo valore interesserà solo i nuovi record.

Enumerazione

Enumerazione gratuita

La proprietà userEnum consente di definire un'enumerazione gratuita per memorizzare e visualizzare i valori immessi tramite questo campo. La sintassi è la seguente:

userEnum="nome dell'enumerazione"

Il nome dato all'enumerazione può essere scelto liberamente e condiviso con altri campi.

Questi valori vengono visualizzati in un elenco a discesa dal modulo di input:

NOTA

Nella console client Adobe Campaign , il nodo Administration > Enumerations viene utilizzato per gestire le enumerazioni.

Imposta enumerazione

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 compilata nello schema all'esterno dell'elemento principale.

Le enumerazioni consentono all'utente di selezionare un valore da un elenco a discesa invece di immettere il valore in un campo di immissione regolare:

Esempio di una 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>

Un'enumerazione viene dichiarata al di fuori dell'elemento principale tramite l'elemento <enumeration>.

Le proprietà di enumerazione sono le seguenti:

  • baseType: tipo di dati associati ai valori,
  • label: descrizione dell'enumerazione,
  • name: nome dell’enumerazione,
  • predefinito: valore predefinito dell'enumerazione.

I valori di enumerazione sono dichiarati nell'elemento <value> con i seguenti attributi:

  • name: nome del valore memorizzato internamente,
  • label: etichetta visualizzata tramite l'interfaccia grafica.

enumerazione dbenum

  • La proprietà dbenum consente di definire un'enumerazione le cui proprietà sono 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.

    I valori sono definiti tramite il nodo Administration>Enumerations.

    Questa enumerazione viene utilizzata per specificare, ad esempio, la natura delle campagne.

Esempio

Di seguito è riportato lo 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

Una raccolta è un elenco di elementi con lo stesso nome e lo stesso livello gerarchico.

L'attributo unbound con il valore "true" consente di compilare un elemento della raccolta.

Esempio: definizione dell'elemento <group> raccolta nello schema.

<element name="group" unbound="true" label="List of groups">
  <attribute name="label" type="string" label="Label"/>
</element>

Con proiezione del contenuto XML:

<group label="Group1"/>
<group label="Group2"/>

Riferimento con 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 indicati dal nome e gli attributi sono designati dal nome preceduto dal carattere "@".

Esempio:

  • @email: seleziona l’e-mail,
  • location/@city: seleziona l'attributo "city" sotto l' <location> elemento
  • …/@email: seleziona l'indirizzo e-mail dall'elemento padre dell'elemento corrente
  • group[1]/@label: seleziona l'attributo "label" secondario del primo elemento della <group> raccolta
  • group[@label='test1']: seleziona l’attributo “label” secondario dell’ <group> elemento e contiene il valore “test1”
NOTA

Quando il percorso attraversa un sottoelemento, viene aggiunto un vincolo aggiuntivo. In questo caso, tra parentesi deve essere inserita la seguente espressione:

  • location/@ city non valido; utilizzare [location/@city]
  • [@email] e @ emailare equivalente

È inoltre possibile definire espressioni complesse, ad esempio le seguenti operazioni aritmetiche:

  • @gender+1: aggiunge 1 al contenuto di ​genderattribute,
  • @email + '('+@created+')': crea una stringa prendendo il valore dell'indirizzo e-mail aggiunto alla data di creazione tra parentesi (per il tipo di stringa, inserire la costante tra virgolette).

Alle espressioni sono state aggiunte funzioni di alto livello per arricchire il potenziale di questa lingua.

È possibile accedere all'elenco delle funzioni disponibili tramite qualsiasi editor di espressioni nella console client Adobe Campaign:

Esempio:

  • GetDate(): restituisce la data corrente
  • Year(@created): restituisce l'anno della data contenuto nell'attributo "created".
  • GetEmailDomain(@email): restituisce il dominio dell’indirizzo e-mail.

Creazione di una stringa tramite la stringa di calcolo

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> sotto l'elemento principale dello schema di dati. Un attributo expr contiene un'espressione XPath per calcolare la visualizzazione.

Esempio: stringa di calcolo della tabella ricevente.

<srcSchema name="recipient" namespace="nms">  
  <element name="recipient">
    <compute-string expr="@lastName + ' ' + @firstName +' (' + @email + ')' "/>
    ...
  </element>
</srcSchema>

Risultato della stringa calcolata per un destinatario: Doe John (john.doe@aol.com)

NOTA

Se lo schema non contiene una stringa Calcola, per impostazione predefinita viene compilata una stringa Calcola con i valori della chiave primaria dello schema.

In questa pagina

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now