Syntax Forms
The following are ABNF grammar definitions derived from IETF RFC documents that may apply to syntax that must be conformed when implementing internet messages in Framework EDI.
Reserved Words | Syntax Form | Notes |
address | mailbox / group | |
address-list | (address *("," address)) | |
addr-spec | local-part "@" domain | The local-part is case sensitive, but the domain is not. |
ALPHA | <Any ASCII alphabetic character> | |
angle-addr | "<" addr-spec ">" | |
AS2-disposition-field | "Disposition" ":" MDN-disposition-mode ";" AS2-disposition-type [ '/' AS2-disposition-modifier ] | |
AS2-disposition-modifier | ( "error" / "warning" ) / AS2-disposition-modifier-extension | |
AS2-disposition-modifier-extension | "error: authentication-failed" / "error: decompression-failed" / "error: decryption-failed" / "error: insufficient-message-security" / "error: integrity-check-failed" / "error: unexpected-processing-error" / "warning: " AS2-MDN-warning-description / "failure: " AS2-MDN-failure-description |
|
AS2-MDN-failure-description | * text | |
AS2-MDN-warning-description | * text | |
AS2-disposition-type | "processed" / "failed" | |
atext | ALPHA / DIGIT
/ "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "/" / "=" / "?" / "^" / "_" / "`" / "{" / "|" / "}" / |
|
atom | [CFWS] 1*atext [CFWS] | |
attribute | token | Matching of attributes is ALWAYS case-insensitive. |
bcc | "Bcc:" (address-list / [CFWS]) CRLF | |
body | *(*998text CRLF) *998text | Lines in a message MUST be a maximum of 998 characters excluding the CRLF. |
cc | "Cc:" address-list CRLF | |
ccontent | ctext / quoted-pair / comment | |
CFWS | *([FWS] comment) (([FWS] comment) / FWS) | |
CHAR | <any ASCII character> | |
comment | "(" *([FWS] ccontent) [FWS] ")" | |
comments | "Comments:" unstructured CRLF | |
composite-type | "message" / "multipart" / extension-token | |
content | "Content-Type" ":" type "/" subtype parameters | Matching of media type and subtype is ALWAYS case-insensitive. |
CR | <ASCII CR, carriage return> | |
creation-date-parm | "creation-date" "=" quoted-date-time | |
CRLF | CR LF | |
ctext | NO-WS-CTL / %d33-39 / %d42-91 / %d93-126 |
Non white space controls The rest of the US-ASCII characters not including "(", ")", or "\" |
CTL | <any ASCII control character and DEL> | |
date | day month year | (See RFCs 822, 2822) |
date-time | [ day-of-week "," ] date FWS time [CFWS] | RFC2822 Sect 3.3: "A date-time specification MUST be semantically valid. That is, the day-of-the-week (if included) MUST be the day implied by the date, the numeric day-of-month MUST be between 1 and the number of days allowed for the specified month (in the specified year), the time-of-day MUST be in the range 00:00:00 through 23:59:60 (the number of seconds allowing for a leap second; see [STD12]), and the zone MUST be within the range -9959 through +9959." |
day | [FWS] 1 * 2DIGIT | RFC2822 Sect 3.3: "The numeric day-of-month MUST be between 1 and the number of days allowed for the specified month (in the specified year), .." |
day-name | "Mon" / "Tue" / "Wed" / "Thu" / "Fri" / "Sat" / "Sun" | |
day-of-week | [FWS] day-name | RFC2822 Sect 3.3: ".. the day-of-the-week (if included) MUST be the day implied by the date, .." |
dcontent | dtext / quoted-pair | |
description | "Content-Description" ":" *text | |
DIGIT | <any ASCII decimal digit> | |
discrete-type | "text" / "image" / "audio" / "video" / "application" / extension-token | |
display-name | phrase | |
disposition | "Content-Disposition" ":"
disposition-type
*(";" disposition-parm) |
|
disposition-parm | filename-parm / creation-date-parm / modification-date-parm / read-date-parm / size-parm / parameter |
|
disposition-type | "inline" / "attachment" / extension-token |
Values are not case-sensitive |
domain | dot-atom / domain-literal | |
domain-literal | [CFWS] "[" *([FWS] dcontent) [FWS] "]" [CFWS] | |
dot-atom | [CFWS] dot-atom-text [CFWS] | |
dot-atom-text | 1*atext*("." 1*atext) | |
DQUOTE | <double-quote> | |
dtext | NO-WS-CTL / %d33-90 / %d94-126 |
Non white space controls The rest of the US-ASCII characters not including "[", |
encoding | "Content-Transfer-Encoding" ":" mechanism | |
entity-headers | [ content CRLF ] [ encoding CRLF ] [ id CRLF ] [ description CRLF ] *( MIME-extension-field CRLF) |
|
extension-token | ietf-token / x-token | |
field | field-name ":" [ field-body ] CRLF | |
fields | *(trace *(resent-date / resent-from / resent-sender / resent-to / resent-cc / resent-bcc / resent-msg-id)) *(orig-date / from / sender / reply-to / to / cc / bcc / message-id / in-reply-to / references / subject / comments / keywords / optional-field) |
|
field-name | 1 * ftext | |
filename-parm | "filename" "=" value | |
forward-path | "<" [obs-route] addr-spec ">" | |
from | "From:" mailbox-list CRLF | |
ftext |
%d33-57 /
%d59-126 |
Any character except controls, SP, and ":". |
FWS | [*WSP CRLF] 1*WSP | Folding white space |
group | display-name ":" [mailbox-list / CFWS] ";"[CFWS] | |
hex-octet | "=" 2(DIGIT / "A" / "B" / "C" / "D" / "E" / "F") | Octet must be used for characters >
127, =, SPACEs or TABs at the ends of lines, and is recommended for any character not listed in RFC 2049 as "mail-safe". |
hour | 2DIGIT | (See RFCs 822, 2822) |
HTAB | %d9 | ASCII value 9 |
iana-token | <A publicly-defined extension token. Tokens of this form must be registered with IANA as specified in RFC 2048.> | |
id | "Content-ID" ":" msg-id | |
id-left | dot-atom-text / no-fold-quote | |
id-right | dot-atom-text / no-fold-literal | |
ietf-token | <An extension token defined by a standards-track RFC and registered with IANA.> | |
in-reply-to | "In-Reply-To:" 1*msg-id CRLF | |
item-name | ALPHA *(["-"] (ALPHA / DIGIT)) | |
item-value | 1*angle-addr / addr-spec / atom / domain / msg-id | |
keywords | "Keywords:" phrase *("," phrase) CRLF | |
LF | <ASCII LF, linefeed> | |
local-part | dot-atom / quoted-string | |
mailbox | name-addr / addr-spec | |
mailbox-list | (mailbox *("," mailbox)) | |
mechanism | "7bit" / "8bit" / "binary" / "quoted-printable" / "base64" / ietf-token / x-token |
|
message | fields [CRLF body] | |
message-id | "Message-ID:" msg-id CRLF | |
MDN-action-mode | "manual-action" / "automatic-action" | |
MDN-disposition-field | "Disposition" ":"
MDN-disposition-mode ";" MDN-disposition-type [ "/" MDN-disposition-modifier *( "," MDN-disposition-modifier ) ] |
|
MDN-disposition-mode | MDN-action-mode "/" MDN-sending-mode | |
MDN-disposition-modifier | "error" / MDN-disposition-modifier-extension | |
MDN-disposition-modifier-extension | atom | |
MDN-disposition-type | "displayed" / "deleted" | |
MDN-sending-mode | "MDN-sent-manually" / "MDN-sent-automatically" | |
MIME-extension-field | <Any RFC 822 header field which begins with the string "Content-"> | |
MIME-message-headers | entity-headers fields version CRLF | The ordering of the header fields implied by this BNF definition should be ignored. |
MIME-part-headers | entity-headers [fields] | Any field not beginning with "content-" can have no defined meaning and may be ignored. The ordering of the header fields implied by this BNF definition should be ignored. |
minute | 2DIGIT | (See RFCs 822, 2822) |
modification-date-parm | "modification-date" "=" quoted-date-time | |
month | FWS month-name FWS | (See RFCs 822, 2822) |
month-name | "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" / "Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec" | (See RFCs 822, 2822) |
msg-id | "<" id-left "@" id-right ">" | |
name-addr | [display-name] angle-addr | |
name-val-list | [CFWS] [name-val-pair *(CFWS name-val-pair)] | |
name-val-pair | item-name CFWS item-value | |
no-fold-literal | "[" *(dtext / quoted-pair) "]" | |
no-fold-quote | DQUOTE *(qtext / quoted-pair) DQUOTE | |
NO-WS-CTL | %d1-8 / %d11 / %d12 / %d14-31 / %d127 |
US-ASCII control characters that do not include the carriage return, line feed, and white space characters. |
optional-field | field-name ":" unstructured CRLF | |
orig-date | "Date" ":" date-time CRLF | |
parameter | attribute "=" value | |
parameters | *(";" parameter) | |
path | [CFWS] "<" ([CFWS] / addr-spec) ">" [CFWS] | |
phrase | 1*word | |
ptext | hex-octet / safe-char | |
qcontent | qtext / quoted-pair | |
qp-line | *(qp-segment
transport-padding CRLF) qp-part transport-padding |
|
qp-part | qp-section | Maximum length of 76 characters |
qp-section | [*(ptext / WSP) ptext] | |
qp-segment | qp-section *WSP "=" | Maximum length of 76 characters |
qtext | NO-WS-CTL / %d33 / %d35-91 / %d93-126 |
Non white space controls The rest of the US-ASCII characters not including "\" or the quote character. |
quoted-date-time | quoted-string | Contents MUST be an RFC 822 `date-time' Numeric timezones (+HHMM or -HHMM) MUST be used |
quoted-pair | "\" text | |
quoted-printable | qp-line *(CRLF qp-line) | |
quoted-string | [CFWS] DQUOTE *([FWS] qcontent) [FWS] DQUOTE [CFWS] |
|
read-date-parm | "read-date" "=" quoted-date-time | |
received | "Received:" name-val-list ";" date-time CRLF | |
references | "References:" 1*msg-id CRLF | |
reply-to | "Reply-To:" address-list CRLF | |
resent-bcc | "Resent-Bcc:" (address-list / [CFWS]) CRLF | |
resent-cc | "Resent-Cc:" address-list CRLF | |
resent-date | "Resent-Date:" date-time CRLF | |
resent-from | "Resent-From:" mailbox-list CRLF | |
resent-msg-id | "Resent-Message-ID:" msg-id CRLF | |
resent-sender | "Resent-Sender:" mailbox CRLF | |
resent-to | "Resent-To:" address-list CRLF | |
return | "Return-path" ":" path | |
Reverse-path | "<" [obs-route ] addr-spec ">" | |
safe-char | <any octet with decimal value of 33 through 60 inclusive, and 62 through 126> | Characters not listed as "mail-safe" in RFC 2049 are also not recommended. |
second | 2DIGIT | (See RFCs 822, 2822) |
sender | "Sender:" mailbox CRLF | |
size-parm | "size" "=" 1*DIGIT | |
SPACE | %d32 | ASCII value 32 |
specials | "(" / ")" / "<" /">" / "@" / "," / ";" / ":" / "\" / <"> / "." / "[" / "]" DQUOTE | |
subject | "Subject:" unstructured CRLF | |
subtype | extension-token / iana-token | |
text | %d1-9 / %d11 / %d12 / %d14-127 |
Any CHAR, including bare CR & bare LF, but NOT including CRLF. |
time | time-of-day FWS zone | |
time-of-day | hour ":" minute [ ":" second ] | RFC2822 Sect 3.3: "..the time-of-day MUST be in the range 00:00:00 through 23:59:60 (the number of seconds allowing for a leap second; see [STD12]), .." |
to | "To:" address-list CRLF | |
token | 1*<any (US-ASCII) CHAR except SPACE, CTLs, or tspecials> | |
trace | return 1*received | |
transport-padding | *WSP | Composers MUST NOT generate non-zero length transport padding, but receivers MUST be able to handle padding added by message transports. |
tspecials | "(" / ")" / "<" /">" / "@" / "," / ";" / ":" / "\" / <"> "/" / "[" / "]" / "?" / "=" |
Must be in quoted-string, to use within parameter values |
type | discrete-type / composite-type | |
unstructured | *([FWS] utext) [FWS] | |
utext | NO-WS-CTL / %d33-126 |
Non white space controls The rest of US-ASCII |
value | token / quoted-string | |
version | "MIME-Version" ":" 1*DIGIT "." 1*DIGIT | |
word | atom / quoted-string | |
WSP | SPACE / HTAB | |
x-token | <The two characters "X-" or "x-" followed, with no intervening white space, by any token> | |
year | 4*DIGIT / obs-year | RFC2822 Sect 3.3: "..The year is any numeric year 1900 or later." |
zone | (( "+" / "-" ) 4DIGIT) / obs-zone | RFC2822 Sect 3.3: "..the zone MUST be within the range -9959 through +9959.." |
obs-domain-list | "@" domain *(*(CFWS/ "," ) [CFWS] "@" domain) | |
obs-route | [CFWS] obs-domain-list ":" [CFWS] | This is the source routing used in older systems of SMTP and should no longer be used. However, if present, it should be accepted and it should be ignored. |
obs-year | [CFWS] 2*DIGIT [CFWS] | |
obs-zone | "UT" / "GMT" / "EST" / "EDT" / "CST" / "CDT" / "MST" / "MDT" / "PST" / "PDT" / %d65-73 / %d75-90 / %d97-105 / %d107-122 |
RFC822 Sect 5.1: "Universal Time North American UT offsets Eastern: - 5/ - 4 Central: - 6/ - 5 Mountain: - 7/ - 6 Pacific: - 8/ - 7 Military zones - "A" through "I" and "K" through "Z", both upper and lower case" |
NOTE: Portions of text on this HTML page were copied from RFC documents. Only those portions of text on this page apply to the copyright notice below. For more information please visit http://www.ietf.org
Copyright (C) The Internet Society (2001). All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
Edidev Online Documentation. Terms and Conditions.