XrML
# XrML

XrML è un eXtensible Rights Markup Language (in italiano: linguaggio di Markup estensibile per i diritti) che è stato standardizzato come Rights Expression Language (REL) per lo MPEG-21. Nasce nel 1999 dalle ceneri di DPRL (nato nel 1996) quando da Lisp passa a XML. XrML è di proprietà di ContentGuard.

XrML si basa su XML e descrive i diritti, i dazi e le condizioni insieme alle informazioni dei messaggi di integrità e autenticazione.

Ad oggi XrML è alla versione 2.0. XrML 2.0 ha un modello dei dati composto da 4 entità e dalle loro relazioni.

## XrML SDK

* Core Framework - Carica lo Schema XrML, legge il file XrML, crea una licenza e invoca gli interpreti appropriati
* Framework
* Interprete (interpreter) - Interpreta i diritti specificate in XrML
* Validatore della Condizione (Condition Validator) - Interpreta le condizioni specificate in XrML

## Struttura

* Risorse - oggetti digitali o servizi su cui esercitare i diritti
* Principal - parti coinvolte nella transazione

Incapsula e identifica la parte a cui i diritti sono garantiti. Le tecnologie di identificazione sono: Detentore dei diritti (Key Holder), credenziali multiple, e identificazioni inventate da altri. È anche associato a meccanismi di autenticazione.

* Diritti - diritti da esercitare su un oggetto digitale

L'Abstraction Right Element è il modulo che incapsula le informazioni relative ai diritti.

* Condizioni - Condizioni con cui esercitare i diritti

L'Abstraction Condition Element è il modulo incaricato di incapsulare le informazioni sulle condizioni. Specifica i termini delle condizioni e degli obblighi.

* Garanzie (Grant) - A chi garantire i diritti, in certe condizioni per una risorsa
* Licenze - una serie di grant che trasmettono a certi Principal certi diritti a certe condizioni riguardo certe risorse

## XrML Core Schema

Lo XrML Core Schema o Schema XrML definisce i concetti delle semantiche XrML, di cui fan parte Licenze, Grant e Diritti. I Diritti (right) sono di tipo astratto e vanno instanziati con

* Issue (rilasciare una licenza)
* Obtain (ottenere un diritto)
* Revoke (revocare un diritto)
* Altri diritti (altre tipologie di diritto come l'esecuzione o play)

Nel XrmL Core Schema c'è anche l'inventario, un contenitore che abilita a definire parti di licenza in un posto e ne fa riferimento in un altro con i grant di una licenza.

## Meccanismo di estensione

Con i meccanismi di estensione di XrML si definiscono nuovi tipi derivandoli da tipi già esistenti.

