Namespace in Experience Data Model (XDM)

A tutti i campi negli schemi Experience Data Model (XDM) è associato un namespace. Questi namespace ti consentono di estendere gli schemi ed evitare conflitti di campi man mano che diversi componenti dello schema vengono riuniti. Questo documento fornisce una panoramica dei namespace in
XDM e come sono rappresentati nell' API del Registro di sistema dello schema.

Lo spazio dei nomi consente di definire un campo in un namespace come qualcosa di diverso dallo stesso campo in un namespace diverso. In pratica, lo spazio dei nomi di un campo indica chi ha creato il campo (ad Adobe XDM standard), un fornitore o l’organizzazione).

Ad esempio, considera uno schema XDM che utilizza il gruppo di campi Dati personali dei contatti, che dispone di un campo mobilePhone standard presente nello spazio dei nomi xdm. Nello stesso schema, puoi anche creare un campo mobilePhone separato in un altro spazio dei nomi (il tuo ID tenant). Entrambi questi campi possono coesistere e avere significati o vincoli sottostanti diversi.

Sintassi di namespace

Le sezioni seguenti mostrano come gli spazi dei nomi vengono assegnati nella sintassi XDM.

XDM standard

La sintassi XDM standard fornisce informazioni approfondite sulla rappresentazione dei namespace negli schemi (compreso come vengono tradotti in Adobe Experience Platform).

XDM standard utilizza la sintassi JSON-LD per assegnare i namespace ai campi. Questo spazio dei nomi si presenta sotto forma di URI (ad esempio https://ns.adobe.com/xdm per lo spazio dei nomi xdm) o come prefisso abbreviato configurato nell’attributo @context di uno schema.

Di seguito è riportato uno schema di esempio per un prodotto con sintassi XDM standard. Ad eccezione di @id (l'identificatore univoco definito dalla specifica JSON-LD), ogni campo in properties inizia con uno spazio dei nomi e termina con il nome del campo. Se si utilizza un prefisso abbreviato definito in @context, lo spazio dei nomi e il nome del campo sono separati da due punti (:). Se non si utilizza un prefisso, lo spazio dei nomi e il nome del campo sono separati da una barra (/).

{
  "$id": "https://ns.adobe.com/xdm/schemas/mySchema",
  "title": "Product",
  "description": "Represents the definition of a Project",
  "@context": {
    "xdm": "https://ns.adobe.com/xdm",
    "repo": "http://ns.adobe.com/adobecloud/core/1.0/",
    "schema": "http://schema.org",
    "tenantId": "https://ns.adobe.com/tenantId"
  },
  "properties": {
    "@id": {
      "type": "string"
    },
    "xdm:sku": {
      "type": "string"
    },
    "xdm:name": {
      "type": "string"
    },
    "repo:createdDate": {
      "type": "string",
      "format": "datetime"
    },
    "https://ns.adobe.com/xdm/channels/application": {
      "type": "string"
    },
    "schema:latitude": {
      "type": "number"
    },
    "https://ns.adobe.com/vendorA/product/stockNumber": {
      "type": "string"
    },
    "tenantId:internalSku": {
      "type": "number"
    }
  }
}
Proprietà Descrizione
@context Oggetto che definisce i prefissi abbreviati che possono essere utilizzati al posto di un URI dello spazio dei nomi completo in properties.
@id Un identificatore univoco per il record come definito dalla specifica JSON-LD.
xdm:sku Esempio di campo che utilizza un prefisso abbreviato per indicare uno spazio dei nomi. In questo caso, xdm è il namespace (https://ns.adobe.com/xdm) e sku è il nome del campo.
https://ns.adobe.com/xdm/channels/application Esempio di campo che utilizza l’URI dello spazio dei nomi completo. In questo caso, https://ns.adobe.com/xdm/channels è lo spazio dei nomi e application è il nome del campo.
https://ns.adobe.com/vendorA/product/stockNumber I campi forniti dalle risorse fornitore utilizzano spazi dei nomi univoci. In questo esempio, https://ns.adobe.com/vendorA/product è lo spazio dei nomi del fornitore e stockNumber è il nome del campo.
tenantId:internalSku I campi definiti dall’organizzazione utilizzano l’ID tenant univoco come namespace. In questo esempio, tenantId è lo spazio dei nomi del tenant (https://ns.adobe.com/tenantId) e internalSku è il nome del campo.

Modalità di compatibilità

In Adobe Experience Platform, gli schemi XDM sono rappresentati nella sintassi Modalità compatibilità, che non utilizza la sintassi JSON-LD per rappresentare i namespace. Platform converte invece lo spazio dei nomi in un campo principale (a partire da un trattino basso) e nidifica i campi al suo interno.

Ad esempio, XDM standard repo:createdDate viene convertito in _repo.createdDate e viene visualizzato nella seguente struttura in Modalità compatibilità:

"_repo": {
  "type": "object",
  "properties": {
    "createdDate": {
      "type": "string",
      "format": "datetime"
    }
  }
}

I campi che utilizzano lo spazio dei nomi xdm vengono visualizzati come campi principali in properties e rilasciano il prefisso xdm: che appare nella sintassi XDM standard. Ad esempio, xdm:sku è semplicemente elencato come sku .

Il seguente JSON rappresenta il modo in cui l’esempio di sintassi XDM standard mostrato sopra viene convertito in Modalità compatibilità.

{
  "$id": "https://ns.adobe.com/xdm/schemas/mySchema",
  "title": "Product",
  "description": "Represents the definition of a Project",
  "properties": {
    "_id": {
      "type": "string"
    },
    "sku": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "_repo": {
      "type": "object",
      "properties": {
        "createdDate": {
          "type": "string",
          "format": "datetime"
        }
      }
    },
    "_channels": {
      "type": "object",
      "properties": {
        "application": {
          "type": "string"
        }
      }
    },
    "_schema": {
      "type": "object",
      "properties": {
        "application": {
          "type": "string"
        }
      }
    },
    "_vendorA": {
      "type": "object",
      "properties": {
        "product": {
          "type": "object",
          "properties": {
            "stockNumber": {
              "type": "string"
            }
          }
        }
      }
    },
    "_tenantId": {
      "type": "object",
      "properties": {
        "internalSku": {
          "type": "number"
        }
      }
    }
  }
}

Passaggi successivi

Questa guida fornisce una panoramica dei namespace XDM e del modo in cui vengono rappresentati in JSON. Per ulteriori informazioni su come configurare gli schemi XDM utilizzando l'API, consulta la guida API del Registro di sistema dello schema.

In questa pagina