RFC 1874
SGML Media Types
RFC 1874: SGML Media Types π
Okay bestie, so this one is from the Network Working Group and it's written by E. Levinson of Accurate Information Systems, Inc. β¨ It's in the Experimental category and dated December 1995. The header doesn't list anything it obsoletes or updates, so it's just a fresh little proposal πΈ
Status of this Memo π¦
This memo defines an Experimental Protocol for the Internet community, and it is NOT an Internet standard of any kind π The author wants your discussion and suggestions for improvement, and distribution of this memo is unlimited π
Abstract β¨
This doc proposes new media sub-types, Text/SGML and Application/SGML π They're for sending SGML documents and their entities around. How you'd exchange or wrap up groups of related SGML entities using MIME is still being figured out by the mimesgml Working Group <sgml-internet@ebt.com> π§
1. Introduction π
Okay so, there's a real need to transfer the pieces of documents built with the Standard Generalized Markup Language (SGML) [ISO-8879] π Even though the nitty-gritty details of those transfers are still being discussed, everyone agrees we should register basic media types for the SGML entities that existing types don't cover yet π«Ά
SGML is what encodes document structure, and the rigorous definition lives in [ISO-8879] π The terms in this document try to match SGML terminology and usage, so you're not getting a made-up vocabulary, periodt β¨
2. The SGML Media-Types π
There are two media-types for SGML parsable entities: Text/SGML and Application/SGML π They have the same optional parameters. Text/SGML gives a fallback to Text/Plain for anything without SGML capability πΈ
Senders should base the choice between text and application media-types on the entity's content π§ Text is suggested for entities that a human could make sense of without SGML processing. Application/SGML is recommended for literally everything else π
2.1. Text/SGML π¦
MIME type name: Text
MIME subtype name: SGML
Required parameters: none
Optional parameters: charset, SGML-bctf, SGML-boot
Encoding considerations: may be encoded
Security considerations: see section 4 below
Published specification: ISO 8879:1986
Person and email address to contact for further information:
E. Levinson <ELevinson@Accurate.com>
The Text/SGML media-type is for when the SGML entity is meant to be read by a human and is in a readily comprehensible form π Basically, someone without SGML display software can easily figure out what it says β¨ Each record in the SGML entity, which is delimited by record start (RS) and record end (RE) codes, must correspond to a line in the Text/SGML body part π
If an SGML entity doesn't meet the requirements above, it should use the Application/SGML media-type π
See section 2.3 for a description of the parameters π
2.2. Application/SGML π
MIME type name: Application
MIME subtype name: SGML
Required parameters: none
Optional parameters: SGML-bctf, SGML-boot
Encoding considerations: may be encoded
Security considerations: see section 4 below
Published specification: ISO-8879
Person and email address to contact for further information:
E. Levinson <ELevinson@Accurate.com>
Use Application/SGML for SGML text entities that aren't a good fit for Text/SGML π
When you use it, each record start (RS) and record end (RE) character shall be explicitly represented by the bit combination specified in the SGML declaration π₯
The parameters are up next π
2.3. SGML Sub-type Parameters π
The parameters for the Text/ and Application/SGML subtypes are defined below π§
charset: The charset parameter for Text/SGML is defined in [RFC-1521]. The valid values and what they mean are registered by the Internet Assigned Numbers Authority (IANA) [RFC-1590] πΈ The default charset value for all Text content-types is "us-ascii" [RFC-1521] β¨
This parameter exists so that non-SGML capable systems can still behave reasonably when Text/SGML falls back to Text/Plain π«Ά SGML capable systems will use the SGML-bctf parameter instead π¦
SGML-bctf: This parameter (SGML bit combination transformation format) describes the method used to turn the entity's sequence of constant width binary numbers (called "bit combinations" in [ISO 8879, 4.24]) into the octet stream in the MIME body part π€
The valid values for SGML-bctf are the BCTF notation names defined in Annex C of [ISO-10744], and they're reproduced for convenience in the Appendix π The default value is "identity", meaning perform no transformation at all π
SGML-boot: The SGML-boot parameter value is the content-ID of a MIME body part (Application/Octet-stream) that satisfies the requirements of the boot attribute in [ISO-10744] π The Appendix has a summary of those requirements. This parameter is only applicable if the SGML entity is a document entity π
3. Security Considerations π
Real talk, this section matters π¨ SGML entities contain information that the recipient's SGML system parses and processes. Those entities may contain and such systems may permit explicit system level commands to be execute while processing the data. To the extent that an SGML system will execute arbitrary command strings, recipients of SGML entities may be at risk π
Parsable SGML entities may also contain explicit processing instructions for a presentation or composition system. Using such instructions raises concerns similar to those of Application/PostScript π
4. References π
[ISO-8879]Information processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 1: Latin Alphabet No. 1, ISO 8859-1:1987.[ISO-8879]ISO 8879:1986, Information processing -- Text and office systems -- Standard Generalized Markup Language (SGML).[ISO-10744]ISO/IEC 10744:1992, Information technology -- Hypermedia/Time-based Structuring Language (HyTime) (as modified by First Proposed Technical Corrigendum, ISO/IEC JTC1/SC18 N5027)[RFC-1521]Borenstein, N., and N. Freed, "MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies", RFC 1521, Bellcore, Innosoft, September 1993.[RFC-1590]Postel, J., "Media Type Registration Procedure", RFC 1590, USC/Information Sciences Institute, March 1994.[RFC-1642]Goldsmith, D., and M. Davis, "UTF-7, A Mail-Safe Transformation Format of UNICODE", RFC 1642, Taligent, Inc., July 1994.
5. Author's Address π
Ed Levinson
Accurate Information Systems, Inc.
2 Industrial Way
Eatontown, NJ 07724
EMail: ELevinson@Accurate.com
APPENDIX: ISO-10744 BCTF Values and Boot Attribute π§
A.1. Bit Combination Transformation Format (BCTF) Values π
This list of BCTF values is here as a convenience πΈ The authoritative source is [ISO-10744] π
identity: Each bit combination is represented by a single octet. This BCTF can only be used for entities where every bit combination has a value not exceeding 255 π’fixed-2: Each bit combination is represented by exactly 2 octets, with the more significant octet first. This BCTF can only be used for entities where every bit combination has a value not exceeding 65535 β¨fixed-3: Each bit combination is represented by exactly 3 octets, with a more significant octet preceding any less significant octets. This BCTF can only be used for entities where every bit combination has a value not exceeding 16777215 πfixed-4: Each bit combination is represented by exactly 4 octets, with a more significant octet preceding any less significant octets π¦utf-8: Each bit combination is represented by a variable number of octets according to UCS Transformation Format 8, defined in Annex P (to be added by the first proposed drafted amendment, PDAM 1, to ISO/IEC 10646-1:1993) πutf-7: Each bit combination is represented by a variable number of octets in the range 0 through 127, as described in [RFC-1642]. This BCTF can only be used for entities where every bit combination has a value not exceeding 65535 π«Άeuc-jp: Each bit combination is treated as a pair of octets, most significant octet first, encoding a character using theExtended_UNIX_Code_Fixed_Width_for_Japanesecharset. It's then transformed into the variable length sequence of octets that would encode that character using theExtended_UNIX_Code_Packed_Format_for_Japanesecharset π―π΅sjis: Each bit combination is treated as a pair of octets, most significant octet first, encoding a character using theExtended_UNIX_Code_Fixed_Width_for_Japanesecharset. It's then transformed into the variable length sequence of octets that would encode that character using theShift_JIScharset π
A.2. The Boot Attribute π
The body part specified by the SGML-boot parameter contains a sequence of triplets of positive integers separated by white space π₯ The triplets correspond to the described character set portion [IS0-8879, 13.1.1.2] of the SGML declaration π
SGML-boot lets you identify the character set of the document's SGML declaration when it uses significant SGML characters [ibid., 4.298] in the SGML reference concrete syntax [ibid., 13.4] that have a character number [ibid., 4.44] in the document's character set that differs from us-ascii π€ The default value is "0 128 0", meaning all characters are us-ascii π
Notes:
- The triplet
<dscn noc bscn>means this: starting with character numberdscnin theus-asciicharacter set, renumbernoccharacters starting atbscnand incrementing by one. So0 128 0represents the identity mapping π¦ - The document's declaration itself may also redefine the significant SGML characters. The boot attribute is intended to bootstrap the SGML system's parse of the declaration πΈ
Bestie, that's the whole spec, and you absolutely slayed it ππβ¨
π¦ where this page comes from
- ietf: rfc1874 1995-12
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms