idnits 2.17.1 draft-ietf-acap-mediatype-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 61 instances of lines with non-RFC2606-compliant FQDNs in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (December 24, 2002) is 7794 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: '7' is defined on line 804, but no explicit reference was found in the text == Unused Reference: '9' is defined on line 812, but no explicit reference was found in the text == Unused Reference: '10' is defined on line 815, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2234 (ref. '5') (Obsoleted by RFC 4234) ** Obsolete normative reference: RFC 2279 (ref. '7') (Obsoleted by RFC 3629) -- Obsolete informational reference (is this intentional?): RFC 2028 (ref. '10') (Obsoleted by RFC 9281) -- Obsolete informational reference (is this intentional?): RFC 2048 (ref. '11') (Obsoleted by RFC 4288, RFC 4289) -- Obsolete informational reference (is this intentional?): RFC 2831 (ref. '14') (Obsoleted by RFC 6331) Summary: 3 errors (**), 0 flaws (~~), 7 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group C. Newman 3 Internet-Draft Sun Microsystems 4 Expires: June 24, 2003 A. Melnikov 5 ACI Worldwide/MessagingDirect 6 December 24, 2002 8 ACAP Media Type Dataset Class 9 draft-ietf-acap-mediatype-01.txt 11 Status of this Memo 13 This document is an Internet-Draft and is in full conformance with 14 all provisions of Section 10 of RFC2026. 16 Internet-Drafts are working documents of the Internet Engineering 17 Task Force (IETF), its areas, and its working groups. Note that 18 other groups may also distribute working documents as 19 Internet-Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet-Drafts as reference 24 material or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at http:// 27 www.ietf.org/ietf/1id-abstracts.txt. 29 The list of Internet-Draft Shadow Directories can be accessed at 30 http://www.ietf.org/shadow.html. 32 This Internet-Draft will expire on June 24, 2003. 34 Copyright Notice 36 Copyright (C) The Internet Society (2002). All Rights Reserved. 38 Abstract 40 With the definition of standardized media types in MIME it has become 41 necessary to keep mapping tables which translate between the standard 42 media type names, commonly used file name extensions, any platform 43 specific typing mechanism, and helper applications to view, compose, 44 edit or print media types. Supplying a set of site defaults is 45 useful so that users won't have to configure well-known types. The 46 mailcap mechanism provides some of this functionality in a 47 homogeneous environment with a shared file system, and both the 48 Macintosh program "Internet Config" and the Windows Registry have had 49 some success in consolidating these tables for multiple applications 50 on a single machine. But neither of these addresses the problems of 51 multi-platform users or a heterogeneous environment. 53 Application Configuration Access Protocol (ACAP) provides appropriate 54 facilities for this need. ACAP's dataset structure is extensible and 55 ACAP's inheritance feature provides for enterprise default settings 56 with per-user customization. This memo defines an ACAP dataset class 57 for media type mapping tables. 59 Table of Contents 61 1. Conventions used in this document . . . . . . . . . . . . . 3 62 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 63 3. ACAP Media Type Dataset Class . . . . . . . . . . . . . . . 3 64 3.1 ACAP Media Type Dataset Class Prefix . . . . . . . . . . . . 3 65 3.2 ACAP Media Type Dataset Hierarchy . . . . . . . . . . . . . 3 66 4. Recommended ACAP Media Type Attributes . . . . . . . . . . . 3 67 4.1 Basic Attributes . . . . . . . . . . . . . . . . . . . . . . 4 68 4.2 System Independent Attributes . . . . . . . . . . . . . . . 4 69 4.3 MacOS Attributes . . . . . . . . . . . . . . . . . . . . . . 7 70 4.4 Unix Attributes . . . . . . . . . . . . . . . . . . . . . . 9 71 4.5 Microsoft Windows Attributes . . . . . . . . . . . . . . . . 12 72 4.5.1 Mapping MediaTypes to Windows Registry . . . . . . . . . . . 15 73 5. Usage Procedures . . . . . . . . . . . . . . . . . . . . . . 15 74 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 17 75 7. Security Considerations . . . . . . . . . . . . . . . . . . 17 76 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . 18 77 Normative References . . . . . . . . . . . . . . . . . . . . 18 78 Informative References . . . . . . . . . . . . . . . . . . . 19 79 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 19 80 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 81 Intellectual Property and Copyright Statements . . . . . . . 22 83 1. Conventions used in this document 85 The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" 86 in this document are to be interpreted as defined in "Key words for 87 use in RFCs to Indicate Requirement Levels" [3]. 89 The attribute syntax specifications use the Augmented Backus-Naur 90 Form (ABNF) [5] notation including rules from ACAP [6]. 92 2. Introduction 94 With the definition of standardized media types in MIME [2] it has 95 become necessary to keep mapping tables which translate between the 96 standard media type names, commonly used file name extensions, any 97 platform specific typing mechanism, and helper applications to view, 98 compose, edit or print media types. Supplying a set of site defaults 99 is useful so that users won't have to configure well-known types. 100 The mailcap [8] mechanism provides some of this functionality in a 101 homogeneous environment with a shared file system, and both the 102 Macintosh program "Internet Config" and the Windows Registry have had 103 some success in consolidating these tables for multiple applications 104 on a single machine. But neither of these addresses the problems of 105 multi-platform users or a heterogeneous environment. 107 ACAP [6] provides appropriate facilities for this need. ACAP's 108 dataset structure is extensible and ACAP's inheritance feature 109 provides for enterprise default settings with per-user customization. 111 3. ACAP Media Type Dataset Class 113 3.1 ACAP Media Type Dataset Class Prefix 115 Datasets whose names begin with "/mediatype" are assumed to contain 116 mediatype entries as defined in this specification. 118 3.2 ACAP Media Type Dataset Hierarchy 120 Each user may have a set of named media type profiles for use on 121 different hosts. The default is "default" and is referenced with the 122 path "/mediatype/user//default/". Inheritance is likely to 123 be useful both for inheriting site or group defaults as well as for 124 inheriting the default configuration when using different hosts. 126 4. Recommended ACAP Media Type Attributes 128 A mediatype entry MUST have an "entry" attribute. All other 129 attributes are OPTIONAL. 131 The ABNF defines the content of the attribute values prior to their 132 encoding as an ACAP string. Clients MUST conform to the syntax when 133 generating these attributes, but MUST NOT assume that the attribute 134 values will conform to this syntax on access. Servers SHOULD NOT 135 enforce the syntax. 137 The OS-specific entries define a number of basic actions which may be 138 performed on a media type. The intention is that additional actions 139 may be added in the future following the same template as the 140 existing actions. 142 4.1 Basic Attributes 144 These attributes are defined in ACAP [6] and have meaning in all 145 dataset classes. This section describes how they are used in a 146 mediatype dataset. 148 entry 150 The "entry" attribute is used to hold a short descriptive name of 151 the media type. This name is used for inheritance, so when 152 customizing a media type which has an entry in an inherited 153 dataset, the entry name needs to remain the same. 155 subdataset 157 The "subdataset" attribute indicates there is another media type 158 dataset underneath this entry. 160 4.2 System Independent Attributes 162 These attributes are likely to have meaning for all ACAP clients. 164 mediatype.common.type 166 This contains the MIME media type [2] of the entry. New MIME 167 media types are registered according to the MIME registration 168 procedures [11]. 170 The ABNF terminals type and subtype are defined in MIME Internet 171 Message Bodies [1]. Free insertion of linear-white-space is not 172 permitted in this grammar. 174 A subtype of "*" indicates a catch-all entry for a type. Clients 175 SHOULD check for a catch-all entry after checking for a regular 176 entry. Catch-all entries are used only for locating a helper 177 application, so the extension attributes SHOULD be NIL. 179 mtype-typenam = type "/" mtype-subtype 181 mtype-subtype = subtype / "*" 183 mediatype.common.param. 185 This contains a MIME parameter for the entry. For example, there 186 might be multiple entries for text media types with different 187 charset parameters. The portion of the attribute 188 name matches the ABNF for the "attribute" rule in [1] but MUST be 189 all lower case. MIME parameter value encodings [4] SHOULD be 190 decoded prior to use of these attributes. 192 mtype-param = *UTF8-CHAR 194 mediatype.common.extension 196 This contains the primary file name extension used with this media 197 type. Extensions should be converted to lower case to simplify 198 searching. The leading "." before an extension is not included in 199 this attribute value. 201 mtype-ext = 1*ATOM-CHAR 203 mediatype.common.extensionOther 205 This is a multi-valued attribute which contains additional file 206 name extension(s) that are commonly associated with this media 207 type. For example, with JPEG files (image/jpeg), a number of 208 extensions have been observed: "jpg", "jpeg", "jfif", "jpe" and 209 "jfi". Extensions should be converted to lower case to simplify 210 searching. 212 mtype-extother = 1*ATOM-CHAR 214 mediatype.common.magicNumber.bin 216 This contains the magic number(s) of the media type. A magic 217 number is a set of octets at the beginning of the file which are 218 always the same for that media type. For example, all image/gif 219 objects begin with the four-octet sequence (71, 73, 70, 56 or 220 "GIF8"). As this is a binary field, it may contain any octet 221 value including 0. This can be used to attempt to locate a type 222 for an untyped file. 224 mtype-magic = 1*OCTET 226 mediatype.common.textualNewlines 228 If this is "1" it indicates that the media type is line oriented 229 and subject to newline canonicalization. If this is "0" it 230 indicates newlines should be preserved. If NIL, the client should 231 default this to "0" for non-text types and "1" for text types. 233 mtype-text = "0" / "1" 235 mediatype.common.description 237 This is a longer textual description of the mediatype. Newlines 238 are represented by a CRLF sequence. 240 mtype-desc = *UTF8-CHAR 242 mediatype.common.suppressWarning 244 If this is "1" then no security warnings will be issued to the 245 user on any platform. Values other than "1" SHOULD be treated as 246 equivalent to NIL. 248 mtype-suppress = "0" / "1" 250 mediatype.common.preferred 252 If this is "1" it indicates that this is the preferred entry for a 253 media type with multiple entries. If this is "0", it indicates 254 this is not the preferred entry. NIL indicates an unspecified 255 preference. For example, the "text/plain" media type may be used 256 to represent multiple file types including plain text and C source 257 files. Thus there can be multiple text/plain entries in the 258 mediatypes list and this attribute is used to identify which one 259 to use by preference when a single choice must be made. As ACAP 260 does not enforce uniqueness of this attribute, software which uses 261 this attribute needs a strategy to deal with multiple preferred 262 types, such as choosing the type whose "entry" appears first using 263 the client's comparator preference. 265 mtype-preferred = "0" / "1" 267 mediatype.common.MIME 269 If this is a "1" it indicates the type is represented as a MIME 270 entity (including headers) rather than as a MIME body. If this is 271 "0", it indicates the type is represented only as a MIME body. If 272 this is NIL, the client should treat it as "0" for non-multipart 273 types and "1" for multipart types. Action-specific ".MIME" 274 attributes take precedence over this when they are non-NIL. 276 mtype-mime = "0" / "1" 278 4.3 MacOS Attributes 280 These are attributes which apply to MacOS systems. 282 mediatype.macOS.type.bin 284 This contains the 4-octet MacOS type code for this media type. 286 mtype-mactype = 4OCTET 288 mediatype.macOS.creator.bin 290 This contains the 4-octet MacOS creator code which the user 291 prefers for use with documents of this type. 293 mtype-maccreat = 4OCTET 295 mediatype.macOS.creator.name 297 This contains the name of the application whose creator code is 298 stored in mediatype.macOS.creator.bin. This value MUST be UTF-8 299 and not in another MacOS script or character set. 301 mtype-maccname = 1*UTF8-CHAR 303 mediatype.macOS.creator.suppressWarning 305 If this is "1", it indicates a preference to suppress any security 306 warnings for this media type when launching the application 307 referenced by the creator code. Values other than "1" SHOULD be 308 treated as equivalent to NIL. 310 mtype-maccsuppress = "0" / "1" 312 mediatype.macOS.action.postProcess.bin 314 This contains the 4-octet MacOS creator code of an application 315 which the user wishes to use when post-processing documents of 316 this type. If NIL, then no post-processing is required. This is 317 primarily used for encapsulating formats such as application/ 318 applefile. 320 mtype-macpost = 4OCTET 322 mediatype.macOS.action.postProcess.name 324 This contains the filename of the application whose creator code 325 is stored in mediatype.macOS.postProcess.bin. This value MUST be 326 UTF-8 and not in another MacOS script or character set. 328 mtype-macpname = 1*UTF8-CHAR 330 mediatype.macOS.action.postProcess.MIME 332 If this is "1", it indicates that the post processor takes a MIME 333 entity (with MIME headers) as input, rather than just a body part. 335 mtype-macmime = "0" / "1" 337 mediatype.macOS.action.edit.bin 339 This contains the 4-octet MacOS creator code of an application 340 which the user wishes to use when editing documents of this type. 341 If NIL, then the application referenced by the creator code is 342 used. 344 mtype-macpost = 4OCTET 346 mediatype.macOS.action.edit.name 348 This contains the filename of the application whose creator code 349 is stored in mediatype.macOS.edit.bin. This value MUST be UTF-8 350 and not in another MacOS script or character set. 352 mtype-macpname = 1*UTF8-CHAR 354 mediatype.macOS.action.edit.MIME 356 If this is "1", it indicates that the editor takes a MIME entity 357 (with MIME headers) as input, rather than just a body part. 359 mtype-macemime = "0" / "1" 361 mediatype.macOS.action.edit.suppressWarning 363 If this is "1", it indicates a preference to suppress any security 364 warnings for this media type when launching the application 365 referenced by the mediatype.macOS.action.edit attribute. Values 366 other than "1" SHOULD be treated as equivalent to NIL. 368 mtype-maccsuppress = "0" / "1" 370 mediatype.macOS.action.edit.alwaysUseHelper 372 If this is "1", it states a user preference to use the specified 373 helper application rather than any internal viewer contained in 374 the dispatching application. 376 mtype-macalways = "0" / "1" 378 mediatype.macOS.stripResource 380 If this is "1", it indicates a preference to strip the resource 381 fork from this media type prior to transmission. 383 mtype-macstripres = "0" / "1" 385 4.4 Unix Attributes 387 These attributes are used to launch Unix helper applications similar 388 to the mailcap [8] mechanism. 390 When a client executes a Unix command line helper it runs under the 391 Bourne shell (usually by using the system() function call). Prior to 392 execution, the client SHOULD perform the following substitutions into 393 the command line: the string "%s" is replaced by a temporary file 394 name for the body part or MIME part (if %s is absent, the body part 395 or MIME part is passed through standard input). The string "%t" is 396 replaced by the media type and subtype, the string "%{}" is 397 replaced by the media type parameter with name . The 398 character "%" is quoted with "\%". By default, multi-part types are 399 left intact with MIME headers prior to dispatching. A dispatching 400 application MAY support the %n and %F options of mailcap [8] for 401 backwards compatibility. 403 mediatype.unix.action.view 405 This contains a command to execute a viewer for the media type. 407 mtype-unixview = *UTF8-CHAR 409 mediatype.unix.action.view.MIME 411 If this is non-NIL it indicates that the viewer uses MIME entities 412 (with complete headers) rather than body parts. 414 mtype-unixvmime = "0" / "1" 416 mediatype.unix.action.view.suppressWarning 418 If this is "1", it indicates a preference to suppress any security 419 warnings for this media type when launching the viewer. Values 420 other than "1" SHOULD be treated as equivalent to NIL. 422 mtype-unixvsuppress = "0" / "1" 424 mediatype.unix.action.view.output 426 This indicates any output assistance which the viewer command 427 needs. The "terminal" option indicates an interactive terminal is 428 needed and the dispatcher should create a terminal window or the 429 equivalent. The "pager" option indicates the output may be more 430 than 24 lines and the viewer does not have a built-in pager. 432 mtype-unixout = "terminal" / "pager" 434 mediatype.unix.action.compose 436 This contains a command to execute a program to compose a new body 437 part of the specified media type. If not set, it is assumed to be 438 the same as mediatype.unix.editor. 440 mtype-unixcomp = *UTF8-CHAR 442 mediatype.unix.action.compose.MIME 444 If this is non-NIL it indicates that the composer uses MIME 445 entities (with complete headers) rather than body parts. 447 mtype-unixcmime = "0" / "1" 449 mediatype.unix.action.edit 451 This contains a command to execute a program to edit body parts of 452 the specified media type. If not set, it is assumed to be the 453 same as mediatype.unix.view. 455 mtype-unixedit = *UTF8-CHAR 457 mediatype.unix.action.edit.MIME 459 If this is non-NIL it indicates that the editor uses MIME entities 460 (with complete headers) rather than body parts. 462 mtype-unixemime = "0" / "1" 464 mediatype.unix.action.edit.suppressWarning 466 If this is "1", it indicates a preference to suppress any security 467 warnings for this media type when launching the viewer. Values 468 other than "1" SHOULD be treated as equivalent to NIL. 470 mtype-unixesuppress = "0" / "1" 472 mediatype.unix.action.print 474 This contains a command to print a body part of the specified 475 type. 477 mtype-unixprint = *UTF8-CHAR 479 mediatype.unix.action.print.MIME 481 If this is non-NIL it indicates that the print command uses MIME 482 entities (with complete headers) rather than body parts. 484 mtype-unixpmime = "0" / "1" 486 mediatype.unix.action.print.suppressWarning 488 If this is "1", it indicates a preference to suppress any security 489 warnings for this media type when launching the viewer. Values 490 other than "1" SHOULD be treated as equivalent to NIL. 492 mtype-unixpsuppress = "0" / "1" 494 mediatype.unix.alwaysUseHelper 496 If this is non-NIL, it states a user preference to use the 497 specified helper application rather than any internal viewer 498 contained in the dispatching application. 500 mtype-unixalways = "0" / "1" 502 4.5 Microsoft Windows Attributes 504 These attributes are used to launch Windows helper applications. 506 Prior to execution of the action attributes, the client MUST perform 507 the following substitutions into the command line: 509 The strings "%r" and "%p" are replaced by the Windows System 510 Directory and the Program Files Directory respectively (The Program 511 Files Directory name can be obtained from the registry key 512 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" 513 attribute "ProgramFilesDir"). 515 The string "%s" is replaced by a temporary file name for the body 516 part or MIME part (if %s is absent, the body part or MIME part is 517 passed through standard input). 519 The string "%t" is replaced by the media type and subtype, the string 520 "%{}" is replaced by the media type parameter with name 521 . The character "%" is quoted with "\%". By default, 522 multi-part types are left intact with MIME headers prior to 523 dispatching. 525 In order to simplify configuration of multiple PCs %r and %p are used 526 instead of explicit directory names, because different PCs may store 527 the Windows System Directory on different drives. 529 For example it is better to use "%r\system32\notepad.exe" instead of 530 "E:\WinNT\system32\notepad.exe", where %r is equal to "E:\WinNT" on a 531 specific PC. 533 mediatype.win32.action.view 535 This contains a command to execute a viewer for the media type. 537 mtype-win32view = *UTF8-CHAR 539 mediatype.win32.action.view.suppressWarning 541 If this is "1", it indicates a preference to suppress any security 542 warnings for this media type when launching the viewer. Values 543 other than "1" SHOULD be treated as equivalent to NIL. 545 mtype-win32vsuppress = "0" / "1" 547 mediatype.win32.action.view.MIME 549 If this is "1" then it indicates that the viewer uses MIME 550 entities (with complete headers) rather than body parts. 552 mtype-win32vmime = "0" / "1" 554 mediatype.win32.action.compose 556 This contains a command to execute a program to compose a new body 557 part of the specified media type. If not set, it is assumed to be 558 the same as mediatype.win32.action.edit. 560 mtype-win32comp = *UTF8-CHAR 562 mediatype.win32.action.compose.MIME 564 This contains a command to execute a program to compose a new body 565 part of the specified media type. If not set, it is assumed to be 566 the same as mediatype.win32.editor. 568 mtype-win32cmime = "0" / "1" 570 mediatype.win32.action.edit 572 This contains a command to execute a program to edit body parts of 573 the specified media type. If not set, it is assumed to be the 574 same as mediatype.win32.action.view. 576 mtype-win32edit = *UTF8-CHAR 578 mediatype.win32.action.edit.suppressWarning 580 If this is "1", it indicates a preference to suppress any security 581 warnings for this media type when editing the media type. Values 582 other than "1" SHOULD be treated as equivalent to NIL. 584 mtype-win32editSup = "0" / "1" 586 mediatype.win32.action.edit.MIME 588 If this is "1" then the data will be sent as a MIME entity 589 (including the MIME headers) rather than as just the body part. 591 mtype-win32editMIME = "0" / "1" 593 mediatype.win32.action.print 595 This contains a command to print a body part of the specified 596 media type. 598 mtype-win32print = *UTF8-CHAR 600 mediatype.win32.action.print.suppressWarning 602 If this is "1", it indicates a preference to suppress any security 603 warnings for this media type when printing the media type. Values 604 other than "1" SHOULD be treated as equivalent to NIL. 606 mtype-win32printSup = "0" / "1" 608 mediatype.win32.action.print.MIME 610 If this is "1" then the data will be sent as a MIME entity 611 (including the MIME headers) rather than as just the body part. 613 mtype-win32printMIME = "0" / "1" 615 mediatype.win32.alwaysUseHelper 617 If this is non-NIL, it states a user preference to use the 618 specified helper application rather than any internal viewer 619 contained in the dispatching application. 621 mtype-win32always = "0" / "1" 623 mediatype.win32.icon 625 If this is non-NIL, it contains a path and index to an icon 626 representing the media type. An ACAP client MAY use local 627 information in preference to this attribute. 629 mtype-win32icon = *UTF8-CHAR "," number 630 ; file name and zero based index of icon in this file 632 4.5.1 Mapping MediaTypes to Windows Registry 634 Many of the attributes in this dataset class correspond closely to 635 attributes in the Windows registry. The following list describes how 636 this mapping aligns. 638 entry: 639 Key HKEY_CLASSES_ROOT\ 640 Attribute "" 641 mediatype.common.type: 642 Key HKEY_CLASSES_ROOT\ 643 Attribute "Content Type" 644 mediatype.common.description 645 Key HKEY_CLASSES_ROOT\ 646 Attribute "" 647 mediatype.win32.action.view: 648 Key HKEY_CLASSES_ROOT\\shell\open\command 649 Attribute "" 650 mediatype.win32.action.compose: 651 Key HKEY_CLASSES_ROOT\\shell\new\command 652 Attribute "" 653 mediatype.win32.action.edit: 654 Key HKEY_CLASSES_ROOT\\shell\edit\command 655 Attribute "" 656 mediatype.win32.action.print: 657 Key HKEY_CLASSES_ROOT\\shell\print\command 658 Attribute "" 659 mediatype.win32.icon: 660 Key HKEY_CLASSES_ROOT\\DefaultIcon 661 Attribute "" 662 mediatype.common.extension: 663 Key HKEY_CLASSES_ROOT\MIME\Database\ 664 Content Type\ 665 Attribute "Extension" 667 Where is a file extension (with leading dot), and 668 is the value of the key HKEY_CLASSES_ROOT\, attribute "". 670 5. Usage Procedures 672 In order to locate the entry to use with a MIME entity, the following 673 procedure is taken; stopping whenever a single entry remains in the 674 list after a step. 676 1. If the media type is application/octet-stream and there is a 677 filename with extension present, search for entries with a 678 matching extension or extensionOther field and skip to step 5. 680 2. Search for entries with a mediatype.common.type of "/ 681 ". Exclude any entries where the parameter on the media 682 type doesn't match the parameters in mediatype.common.param.* 683 attributes. For example, a "text/plain; charset=iso-2022-jp" 684 media type does not match an entry with a 685 "mediatype.common.param.charset" value of "utf-8". 687 3. If no matching entries result, look for a mediatype.common.type 688 of "/*" and repeat step 1. 690 4. If there is a filename with extension present, use the extension 691 to reduce the number of matches. 693 5. If any entry has a mediatype.common.preferred value other than 694 "0", then exclude all entries with a mediatype.common.preferred 695 value of "0". 697 6. If any entry has a mediatype.common.preferred attribute of "1" 698 exclude all entries which have a NIL mediatype.common.preferred 699 attribute. 701 7. If multiple matching entries remain, pick one at random or prompt 702 the user. 704 When launching the appropriate helper application, a security warning 705 SHOULD be issued if the MIME entity arrived from an external source 706 and the appropriate suppressWarning attribute is not "1". A security 707 warning MAY be issued under any circumstances. 709 6. Examples 711 Here is an example mediatype entry. Multi-valued attributes are 712 represented with parenthesis around the multiple values. 714 attribute value 715 --------- ----- 716 entry JPEG image 717 mediatype.common.type image/jpeg 718 mediatype.common.extension jpg 719 mediatype.common.extensionOther (jpeg jpe jfif jfi) 720 mediatype.common.description JPEG is an image format most 721 suitable for compressing 722 photographs 723 mediatype.common.suppressWarning 1 724 mediatype.macOS.type.bin JPEG 725 mediatype.macOS.creator.bin JVWR 726 mediatype.macOS.creator.name JPEG View 727 mediatype.macOS.action.edit.bin 8BIM 728 mediatype.macOS.action.edit.name Adobe Photoshop 729 mediatype.unix.action.view xv 731 Here is an example use of ACAP to fetch information about a media 732 type by name: 734 C: A047 SEARCH "/mediatype/~/default/" RETURN ("*") 735 EQUAL "entry" "i;octet" "WinZip File" 736 S: A047 ENTRY "WinZip File" (("modtime" "19980309102226") 737 ("mediatype.common.extension" ("zip")) 738 ("mediatype.common.type" ("application/x-zip-compressed")) 739 ("mediatype.common.description" ("Zip archive file") 740 ("mediatype.common.textualNewlines" "0") 741 ("mediatype.win32.action.view" "%r\WinZip\winzip32.exe") 742 ("mediatype.win32.icon" "%r\WinZip\winzip32.exe,0") 743 ("mediatype.win32.alwaysUseHelper" "1")) 744 S: A047 MODTIME "19980309105258" 745 S: A047 OK "SEARCH completed" 747 7. Security Considerations 749 This dataset provides the ability to identify a helper application to 750 process a media type. Such helper applications may be subject to 751 serious security considerations related to active content as 752 discussed in MIME [2]. It is expected that programs which launch 753 helper applications will display a security warning to the user 754 unless the media type is known to be safe or the appropriate 755 suppressWarning attribute is set. 757 The suppressWarning attributes express security policy. The Unix and 758 win32 action attributes are extremely security sensitive as they 759 contain active content. These attributes are subject to a variety of 760 active attacks. The CRAM-MD5 [12] authentication mechanism used by 761 ACAP is inadequate both because it fails to authenticate the server 762 and fails to provide integrity protection. This dataset class SHOULD 763 only be used with a security layer such as STARTTLS [13] or 764 DIGEST-MD5 [14]. 766 8. IANA Considerations 768 This document constitutes the registration for the "mediatype" 769 dataset class per section 7.3 of [6]. 771 Dataset class name/attribute prefix: mediatype 773 Purpose: Media Type Mappings 775 Published Specification(s): This specification 777 Person and email address to contact for further information: 779 See Authors' Addresses section of this specification. 781 Normative References 783 [1] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 784 Extensions (MIME) Part One: Format of Internet Message Bodies", 785 RFC 2045, November 1996. 787 [2] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 788 Extensions (MIME) Part Two: Media Types", RFC 2046, November 789 1996. 791 [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement 792 Levels", BCP 14, RFC 2119, March 1997. 794 [4] Freed, N. and K. Moore, "MIME Parameter Value and Encoded Word 795 Extensions: Character Sets, Languages, and Continuations", RFC 796 2231, November 1997. 798 [5] Crocker, D. and P. Overell, "Augmented BNF for Syntax 799 Specifications: ABNF", RFC 2234, November 1997. 801 [6] Newman, C. and J. Myers, "ACAP -- Application Configuration 802 Access Protocol", RFC 2244, November 1997. 804 [7] Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC 805 2279, January 1998. 807 Informative References 809 [8] Borenstein, N., "A User Agent Configuration Mechanism For 810 Multimedia Mail Format Information", RFC 1524, September 1993. 812 [9] Bradner, S., "The Internet Standards Process -- Revision 3", 813 BCP 9, RFC 2026, October 1996. 815 [10] Hovey, R. and S. Bradner, "The Organizations Involved in the 816 IETF Standards Process", BCP 11, RFC 2028, October 1996. 818 [11] Freed, N., Klensin, J. and J. Postel, "Multipurpose Internet 819 Mail Extensions (MIME) Part Four: Registration Procedures", BCP 820 13, RFC 2048, November 1996. 822 [12] Klensin, J., Catoe, R. and P. Krumviede, "IMAP/POP AUTHorize 823 Extension for Simple Challenge/Response", RFC 2195, September 824 1997. 826 [13] Newman, C., "Using TLS with IMAP, POP3 and ACAP", RFC 2595, 827 June 1999. 829 [14] Leach, P. and C. Newman, "Using Digest Authentication as a SASL 830 Mechanism", RFC 2831, May 2000. 832 Authors' Addresses 834 Chris Newman 835 Sun Microsystems 836 1050 Lakes Drive 837 West Covina, CA 91790 838 US 840 EMail: chris.newman@sun.com 842 Alexey Melnikov 843 ACI Worldwide/MessagingDirect 844 59 Clarendon Road 845 Watford, Hertfordshire WD17 1FQ 846 United Kingdom 848 Phone: +44 1923 81 2877 849 EMail: mel@messagingdirect.com 851 Index 853 E 854 entry 4 856 M 857 mediatype.common.description 6 858 mediatype.common.extension 5 859 mediatype.common.extensionOther 5 860 mediatype.common.magicNumber.bin 5 861 mediatype.common.MIME 6 862 mediatype.common.param. 5 863 mediatype.common.preferred 6 864 mediatype.common.suppressWarning 6 865 mediatype.common.textualNewlines 6 866 mediatype.common.type 4 867 mediatype.macOS.action.edit.alwaysUseHelper 9 868 mediatype.macOS.action.edit.bin 8 869 mediatype.macOS.action.edit.MIME 8 870 mediatype.macOS.action.edit.name 8 871 mediatype.macOS.action.edit.suppressWarning 9 872 mediatype.macOS.action.postProcess.bin 7 873 mediatype.macOS.action.postProcess.MIME 8 874 mediatype.macOS.action.postProcess.name 8 875 mediatype.macOS.creator.bin 7 876 mediatype.macOS.creator.name 7 877 mediatype.macOS.creator.suppressWarning 7 878 mediatype.macOS.stripResource 9 879 mediatype.macOS.type.bin 7 880 mediatype.unix.action.compose 10 881 mediatype.unix.action.compose.MIME 10 882 mediatype.unix.action.edit 10 883 mediatype.unix.action.edit.MIME 11 884 mediatype.unix.action.edit.suppressWarning 11 885 mediatype.unix.action.print 11 886 mediatype.unix.action.print.MIME 11 887 mediatype.unix.action.print.suppressWarning 11 888 mediatype.unix.action.view 9 889 mediatype.unix.action.view.MIME 10 890 mediatype.unix.action.view.output 10 891 mediatype.unix.action.view.suppressWarning 10 892 mediatype.unix.alwaysUseHelper 11 893 mediatype.win32.action.compose 13 894 mediatype.win32.action.compose.MIME 13 895 mediatype.win32.action.edit 13 896 mediatype.win32.action.edit.MIME 13 897 mediatype.win32.action.edit.suppressWarning 13 898 mediatype.win32.action.print 13 899 mediatype.win32.action.print.MIME 14 900 mediatype.win32.action.print.suppressWarning 14 901 mediatype.win32.action.view 12 902 mediatype.win32.action.view.MIME 12 903 mediatype.win32.action.view.suppressWarning 12 904 mediatype.win32.alwaysUseHelper 14 905 mediatype.win32.icon 14 907 Intellectual Property Statement 909 The IETF takes no position regarding the validity or scope of any 910 intellectual property or other rights that might be claimed to 911 pertain to the implementation or use of the technology described in 912 this document or the extent to which any license under such rights 913 might or might not be available; neither does it represent that it 914 has made any effort to identify any such rights. Information on the 915 IETF's procedures with respect to rights in standards-track and 916 standards-related documentation can be found in BCP-11. Copies of 917 claims of rights made available for publication and any assurances of 918 licenses to be made available, or the result of an attempt made to 919 obtain a general license or permission for the use of such 920 proprietary rights by implementors or users of this specification can 921 be obtained from the IETF Secretariat. 923 The IETF invites any interested party to bring to its attention any 924 copyrights, patents or patent applications, or other proprietary 925 rights which may cover technology that may be required to practice 926 this standard. Please address the information to the IETF Executive 927 Director. 929 Full Copyright Statement 931 Copyright (C) The Internet Society (2002). All Rights Reserved. 933 This document and translations of it may be copied and furnished to 934 others, and derivative works that comment on or otherwise explain it 935 or assist in its implementation may be prepared, copied, published 936 and distributed, in whole or in part, without restriction of any 937 kind, provided that the above copyright notice and this paragraph are 938 included on all such copies and derivative works. However, this 939 document itself may not be modified in any way, such as by removing 940 the copyright notice or references to the Internet Society or other 941 Internet organizations, except as needed for the purpose of 942 developing Internet standards in which case the procedures for 943 copyrights defined in the Internet Standards process must be 944 followed, or as required to translate it into languages other than 945 English. 947 The limited permissions granted above are perpetual and will not be 948 revoked by the Internet Society or its successors or assignees. 950 This document and the information contained herein is provided on an 951 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 952 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 953 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 954 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 955 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 957 Acknowledgement 959 Funding for the RFC Editor function is currently provided by the 960 Internet Society.