Sintassi namespace
Le sezioni seguenti mostrano come gli spazi dei nomi vengono assegnati nella sintassi XDM.
XDM standard
La sintassi XDM standard fornisce ad insight informazioni sul modo in cui gli spazi dei nomi vengono rappresentati negli schemi (incluso come vengono tradotti in Adobe Experience Platform).
XDM standard utilizza la sintassi JSON-LD per assegnare spazi dei nomi ai campi. Questo spazio dei nomi ha la forma di un URI (ad esempio https://ns.adobe.com/xdm
per lo spazio dei nomi xdm
) o di un 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 dell'URI completo dello spazio dei nomi in properties . |
@id | Identificatore univoco del record definito dalla specifica JSON-LD. |
xdm:sku | Esempio di un campo che utilizza un prefisso abbreviato per indicare uno spazio dei nomi. In questo caso, xdm è lo spazio dei nomi (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 completo dello spazio dei nomi. 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 dalla tua organizzazione utilizzano l’ID tenant univoco come spazio dei nomi. 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à di compatibilità, che non utilizza la sintassi JSON-LD per rappresentare gli spazi dei nomi. Al contrario, Experience Platform converte lo spazio dei nomi in un campo principale (partendo da un carattere di sottolineatura) e nidifica i campi al di sotto di esso.
Ad esempio, l'XDM standard repo:createdDate
è convertito in _repo.createdDate
e verrà visualizzato nella seguente struttura in modalità di compatibilità:
"_repo": {
"type": "object",
"properties": {
"createdDate": {
"type": "string",
"format": "datetime"
}
}
}
I campi che utilizzano lo spazio dei nomi xdm
vengono visualizzati come campi radice in properties
e rilasciano il prefisso xdm:
che apparirebbe nella sintassi XDM standard. Ad esempio, xdm:sku
è semplicemente elencato come sku
.
Il seguente codice JSON rappresenta il modo in cui la sintassi XDM standard mostrata sopra viene tradotta in modalità di 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"
}
}
}
}
}