Namnavstånd i Experience Data Model (XDM)
Alla fält i XDM-scheman (Experience Data Model) har ett associerat namnutrymme. Med dessa namnutrymmen kan du utöka dina scheman och förhindra fältkollisioner när olika schemakomponenter sammanförs. Det här dokumentet innehåller en översikt över namnutrymmen i XDM och hur de visas i API:t för schemaregister.
Med namnmellanrum kan du definiera ett fält i ett namnutrymme så att det betyder något annat än samma fält i ett annat namnutrymme. I praktiken visar namnutrymmet för ett fält vem som skapade fältet (till exempel standard-XDM (Adobe), en leverantör eller din organisation).
Ta till exempel ett XDM-schema som använder fältgruppen Personal Contact Details, som har ett standardfält mobilePhone
som finns i namnområdet xdm
. I samma schema kan du även skapa ett separat mobilePhone
-fält under ett annat namnområde (ditt klientorganisations-ID). Båda dessa fält kan samexistera med olika underliggande betydelse eller begränsningar.
Namnområdessyntax
I följande avsnitt visas hur namnutrymmen tilldelas i XDM-syntax.
Standard XDM standard
Standardsyntaxen för XDM ger dig insikt i hur namnutrymmen representeras i scheman (inklusive hur de översätts i Adobe Experience Platform).
Standard-XDM använder JSON-LD-syntax för att tilldela namnutrymmen till fält. Det här namnutrymmet kommer i form av en URI (till exempel https://ns.adobe.com/xdm
för namnutrymmet xdm
) eller som ett kortskriftsprefix som har konfigurerats i attributet @context
för ett schema.
Följande är ett exempelschema för en produkt i standard-XDM-syntax. Med undantag för @id
(den unika identifieraren som definieras av JSON-LD-specifikationen), börjar varje fält under properties
med ett namnutrymme och slutar med fältnamnet. Om du använder ett kortskriftsprefix som definieras under @context
avgränsas namnutrymmet och fältnamnet med ett kolon (:
). Om inget prefix används avgränsas namnutrymmet och fältnamnet med ett snedstreck (/
).
{
"$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"
}
}
}
@context
properties
.@id
xdm:sku
xdm
namnutrymmet (https://ns.adobe.com/xdm
) och sku
fältnamnet.https://ns.adobe.com/xdm/channels/application
https://ns.adobe.com/xdm/channels
namnutrymmet och application
fältnamnet.https://ns.adobe.com/vendorA/product/stockNumber
https://ns.adobe.com/vendorA/product
leverantörens namnområde och stockNumber
är fältnamnet.tenantId:internalSku
tenantId
innehavarens namnutrymme (https://ns.adobe.com/tenantId
) och internalSku
är fältnamnet.Kompatibilitetsläge compatibility
I Adobe Experience Platform representeras XDM-scheman i syntaxen Kompatibilitetsläge , som inte använder JSON-LD-syntaxen för att representera namnutrymmen. I stället konverterar Platform namnutrymmet till ett överordnat fält (med början med ett understreck) och kapslar fälten under det.
Standard-XDM repo:createdDate
konverteras till _repo.createdDate
och visas under följande struktur i kompatibilitetsläge:
"_repo": {
"type": "object",
"properties": {
"createdDate": {
"type": "string",
"format": "datetime"
}
}
}
Fält som använder namnutrymmet xdm
visas som rotfält under properties
och släpper prefixet xdm:
som skulle visas i standard-XDM-syntax. Till exempel visas xdm:sku
bara som sku
i stället.
Följande JSON visar hur standardexemplet på XDM-syntax översätts till kompatibilitetsläge.
{
"$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"
}
}
}
}
}
Nästa steg
I den här handboken finns en översikt över XDM-namnutrymmen och hur de representeras i JSON. Mer information om hur du konfigurerar XDM-scheman med API:t finns i API-guiden för schemaregister.