3. Syntaxe (Syntax)
La syntaxe formelle du schéma d'URL « data » est définie comme suit :
dataurl := "data:" [ mediatype ] [ ";base64" ] "," data
mediatype := [ type "/" subtype ] *( ";" parameter )
data := *urlchar
parameter := attribute "=" value
Où :
urlcharest importé de [RFC2396]type,subtype,attributeetvaluesont les jetons correspondants de [RFC2045], représentés en utilisant l'encodage échappé d'URL (URL Escaped Encoding) de [RFC2396] si nécessaire
Les valeurs d'attribut dans [RFC2045] peuvent être représentées soit comme des jetons, soit comme des chaînes entre guillemets (Quoted Strings). Cependant, dans une URL « data », la représentation « quoted-string » serait maladroite, car le guillemet lui-même n'est pas un urlchar valide. Pour cette raison, les valeurs de paramètre devraient (SHOULD) utiliser l'encodage échappé d'URL au lieu de chaînes entre guillemets si les valeurs de paramètre contiennent des « tspecial ».
L'extension « ;base64 » se distingue d'un paramètre de type de contenu (Content-Type Parameter) par le fait qu'elle n'a pas de signe « = » suivant.