Correct usage of xid to upsert with Live uploader

I’m using DQL through Ratel.

Below is my mapping…

<xid>: string @index(hash) .
<Student.studentId>: string @index(hash) @upsert .
<Student.courses>: [uid] @count .
<Student.xid>: string @index(hash) .

<Course.codeId>: uid .
<Course.eventId>: int .
<Course.student>: uid .
<Course.timestamp>: datetime @index(year) .
<Course.xid>: string @index(hash) .

<CourseTcode.codeConceptId>: int @index(int) @upsert .
<CourseTcode.course>: uid .
<CourseTcode.xid>: string @index(hash) .