Begränsningar för XDM-fälttyp

I XDM-scheman (Experience Data Model) begränsar fälttypen vilken typ av data som fältet kan innehålla. Det här dokumentet innehåller en översikt över varje huvudfälttyp, inklusive andra serialiseringsformat som de kan mappas till och hur du definierar egna fälttyper i API för att tillämpa olika begränsningar.

Komma igång

Granska grunderna för schemakomposition innan du använder den här guiden för att få en introduktion till XDM-scheman, klasser och schemafältgrupper.

Om du planerar att definiera dina egna fälttyper i API rekommenderar vi att du börjar med utvecklarhandboken för schemaregister för att lära dig hur du skapar fältgrupper och datatyper som du vill inkludera dina anpassade fält i. Om du använder användargränssnittet för Experience Platform för att skapa dina scheman kan du läsa guiden om att definiera fält i användargränssnittet för att lära dig hur du implementerar begränsningar för fält som du definierar i anpassade fältgrupper och datatyper.

Grundstruktur och exempel basic-types

XDM byggs ovanpå JSON-schema och därför ärver XDM-fält en liknande syntax när de definierar sin typ. Att förstå hur olika fälttyper visas i JSON-schema kan hjälpa till att indikera basbegränsningarna för varje typ. Anpassade fältnamn är inte skiftlägeskänsliga och måste ha olika namn på samma nivå i schemat.

NOTE
Mer information om JSON Schema och andra underliggande tekniker i Platform API:er finns i API-handboken.

I följande tabell visas hur varje XDM-typ representeras i JSON-schema, tillsammans med ett exempelvärde som överensstämmer med typen:

XDM-typ
JSON-schema
Exempel
String
{"type": "string"}
"Platinum"
Number
{"type": "number"}
12925.49
Long
{
  "type": "integer",
  "maximum": 9007199254740991,
  "minimum": -9007199254740991
}
1478108935
Integer
{
  "type": "integer",
  "maximum": 2147483648,
  "minimum": -2147483648
}
24906290
Short
{
  "type": "integer",
  "maximum": 32768,
  "minimum": -32768
}
15781
Byte
{
  "type": "integer",
  "maximum": 128,
  "minimum": -128
}
90
Date*
{
  "type": "string",
  "format": "date"
}
"2019-05-15"
DateTime*
{
  "type": "string",
  "format": "date-time"
}
"2019-05-15T20:20:39+00:00"
Boolean
{"type": "string"}
true

*Alla datumformaterade strängar måste uppfylla standarden ISO 8601 (RFC 3339, avsnitt 5.6).

Mappa XDM-typer till andra format

Avsnitten nedan beskriver hur varje XDM-typ mappar till andra vanliga serialiseringsformat:

NOTE
Bland de XDM-standardtyper som anges i tabellerna nedan ingår även typen Map. Kartor används i standardscheman när data representeras som nycklar som mappar till vissa värden, eller där nycklar inte rimligen kan inkluderas i ett statiskt schema och måste behandlas som datavärden.
Många standard-XDM-komponenter använder mappningstyper, och du kan även definiera anpassade mappningsfält om du vill. Karttypen tas med i tabellerna nedan för att hjälpa dig att bestämma hur befintliga data ska mappas till XDM om de för närvarande lagras i något av formaten som listas nedan.

Parquet, Spark SQL och Java parquet

XDM-typ
Parquet
Spark SQL
Java
String
Typ: BYTE_ARRAY
Anteckning: UTF8
StringType
java.lang.String
Number
Typ: DOUBLE
LongType
java.lang.Double
Long
Typ: INT64
LongType
java.lang.Long
Integer
Typ: INT32
Anteckning: INT_32
IntegerType
java.lang.Integer
Short
Typ: INT32
Anteckning: INT_16
ShortType
java.lang.Short
Byte
Typ: INT32
Anteckning: INT_8
ByteType
java.lang.Short
Date
Typ: INT32
Anteckning: DATE
DateType
java.util.Date
DateTime
Typ: INT64
Anteckning: TIMESTAMP_MILLIS
TimestampType
java.util.Date
Boolean
Typ: BOOLEAN
BooleanType
java.lang.Boolean
Map
MAP-kommenterad grupp

(<key-type> måste vara STRING)
MapType

(keyType måste vara StringType)
java.util.Map

Scala, .NET och CosmosDB scala

XDM-typ
Scala
.NET
CosmosDB
String
String
System.String
String
Number
Double
System.Double
Number
Long
Long
System.Int64
Number
Integer
Int
System.Int32
Number
Short
Short
System.Int16
Number
Byte
Byte
System.SByte
Number
Date
java.util.Date
System.DateTime
String
DateTime
java.util.Date
System.DateTime
String
Boolean
Boolean
System.Boolean
Boolean
Map
Map
(Ej tillämpligt)
object

MongoDB, Aerospike och Protobuf 2 mongo

XDM-typ
MongoDB
Aerospike
Protobuf 2
String
string
String
string
Number
double
Double
double
Long
long
Integer
int64
Integer
int
Integer
int32
Short
int
Integer
int32
Byte
int
Integer
int32
Date
date
Integer
(Unix millisekunder)
int64
(Unix millisekunder)
DateTime
timestamp
Integer
(Unix millisekunder)
int64
(Unix millisekunder)
Boolean
bool
Integer
(0/1 binärt)
bool
Map
object
map
map<key_type, value_type>

Definiera XDM-fälttyper i API define-fields

Med API:t för schemaregister kan du definiera anpassade fält med hjälp av format och valfria begränsningar. Mer information finns i guiden Definiera anpassade fält i API:t för schemaregister.

recommendation-more-help
62e9ffd9-1c74-4cef-8f47-0d00af32fc07