179

Reading up on content providers, I keep wondering why both the category and type of Android MIME types are prefixed with vnd. For example:

vnd.android.cursor.dir/vnd.<something>
vnd.android.cursor.item/vnd.<something>

Anyone know what this stands for and what the point is?

Flow
  • 22,048
  • 13
  • 91
  • 147
rogerkk
  • 4,986
  • 4
  • 31
  • 49

2 Answers2

221

vnd indicates vendor-specific MIME types, which means they are MIME types that were introduced by corporate bodies rather than e.g. an Internet consortium.

Matthias
  • 41,630
  • 28
  • 100
  • 129
  • 3
    By corporate bodies in this case, do you mean Google? – IgorGanapolsky May 14 '12 at 16:32
  • 3
    Yes, for instance. Microsoft, too, introduced non-standard MIME types e.g. for their Office products, so did many other companies. – Matthias May 15 '12 at 08:35
  • 2
    Thanks, and what does the x- mean? – Bram Jan 14 '14 at 21:20
  • 1
    According to [Section 3.4 of RFC6838](http://tools.ietf.org/html/rfc6838) MIME types prefixed with 'x-' were originally apart of the unregistered tree, intended only for private exchange between agreeing organizations. This was deprecated in [RFC6648](http://tools.ietf.org/html/rfc6648) stating the prefix was widely used for experimental and production data interchange formats. _RFC6648_ appears to be advising format creators (called protocol providers in the RFC) to register their MIME types because of the slow standardization of the originally experimental features. – Mark Oct 01 '14 at 03:13
  • 7
    @IgorGanapolsky If you meant Google = like the vendor of android, then no. You could make your own custom file and give it let's say application/vnd.igor.test mime type, and your app can listen to it. It doesn't matter what you have after "vnd.", just make it somehow to prevent "collisions" with other "igors" if you know what I mean. If you have a domain, you could use application/vnd.com.example.igor – Gavriel Jan 15 '15 at 19:55
  • 1
    Note that `x-` is now "no longer considered to be members of this tree." Instead, `x.` is defined as the "unregistered" tree, and strongly discouraged (apparently except for experimental uses). There is also the `prs.` tree, which is meant for personal use (but apparently not experimental personal use). So I suppose I would use `x.steve` for experimental code, and `prs.steve` (or ideally something more distinctive) if I declare it worth release into the wild. – Steve Aug 16 '18 at 08:28
44

vnd = vendor.

See Wikipedia - Media type:

Types or subtypes that begin with x- are nonstandard[2] (they are not registered with IANA). Subtypes that begin with vnd. are vendor-specific; subtypes in the personal or vanity tree begin with prs..[3]

Pang
  • 8,605
  • 144
  • 77
  • 113
bdargan
  • 1,190
  • 7
  • 16
  • 11
    Don't vnd subtypes have to be registered (as opposed to x- subtypes)? If so, why aren't the Android subtypes registered? – Gili May 31 '12 at 17:21
  • 1
    Is there a directory of registered vnd media types somewhere? – jchook Sep 19 '16 at 15:03
  • 4
    To answer my own question, this seems to be the authoritative list on media types: http://www.iana.org/assignments/media-types/media-types.xhtml – jchook Sep 19 '16 at 15:34
  • Per my comment on the other answer, `x-` is not supposed to be used any more; `x.` is the approved (but discouraged except for experimental use) replacement. – Steve Aug 16 '18 at 08:29