Hi Dave, Thursday (9 January 2003)
Below is my best effort to replace the PSI 'reference.xsd' with simple
URLs (with a few query part parameters).
More work is still needed on the RFC 2822 (SMTP) format for references
to specific messages and body parts and attachments of those messages,
for POP3 (see IMAP4 below).
Cheers,
- Ira McDonald
High North Inc
----------------------------------------
* Convert current "reference.xsd" to use _only_ URLs
URL
---Background:
See "Uniform Resource Identifiers (URI): Generic Syntax" (RFC 2396).
FTP ---
Example:
blues@myhost.com:21/somefile.txt?passive=true;mode=binary">ftp://joe:blues@myhost.com:21/somefile.txt?passive=true;mode=binary
Notes:
(1) OPTIONAL 'user' here is 'joe' (2) OPTIONAL 'password' here is 'blues' (3) REQUIRED 'host' here is 'myhost.com' (4) OPTIONAL 'port' here is '21' (the default for FTP) (5) OPTIONAL 'fpath' here is 'somefile.txt' (6) PSI-defined query extension 'passive' here is 'true' (7) PSI-defined query extension 'mode' here is 'binary' (as opposed to 'text')
Background:
From section 5 of "Uniform Resource Locators (URL)" (RFC 1738):
ftpurl = "ftp://" login [ "/" fpath [ ";type=" ftptype ]] fpath = fsegment *[ "/" fsegment ] fsegment = *[ uchar | "?" | ":" | "@" | "&" | "=" ] ftptype = "A" | "I" | "D" | "a" | "i" | "d" login = [ user [ ":" password ] "@" ] hostport hostport = host [ ":" port ]
FILE ----
Example:
file://myhost.com/myreference.pdf
Notes:
(1) OPTIONAL 'host' can be empty of "localhost" (but this is not a safe reference to pass over the network) (2) REQUIRED 'path' MUST specify a specific file
Background:
From section 3.10 of "Uniform Resource Locators (URL)" (RFC 1738):
The file URL scheme is used to designate files accessible on a particular host computer. This scheme, unlike most other URL schemes, does not designate a resource that is universally accessible over the Internet.
A file URL takes the form:
file://
>/<path> where <host> is the fully qualified domain name of the system on which the <path> is accessible, and <path> is a hierarchical directory path of the form <directory>/<directory>/.../<name>.
POP3 ----
Example:
pop://joe;auth=<sasl-info>@mailhost.com:110 (1) (2) (3) (4)
Notes:
(1) OPTIONAL 'user' parameter MUST be specified for PSI usage (2) OPTIONAL 'auth' parameter MAY be specified for APOP or SASL info (3) REQUIRED 'host' parameter SHOULD NOT be <ip-addr> for PSI usage (4) OPTIONAL 'port' parameter defaults to 110
Background:
From section 3 of "POP URL Scheme", RFC 2384, August 1998:
"The POP URL scheme designates a POP server, and optionally a port number, authentication mechanism, authentication ID, and/or authorization ID.
The POP URL follows the common Internet scheme syntax as defined in RFC 1738 [BASIC-URL] except that clear text passwords are not permitted. If :<port> is omitted, the port defaults to 110.
The POP URL is described using [ABNF] in Section 8.
A POP URL is of the general form:
pop://<user>;auth=<auth>@<host>:<port>
Where <user>, <host>, and <port> are as defined in RFC 1738, and some or all of the elements, except "pop://" and <host>, may be omitted."
From section 8 of "POP URL Scheme", RFC 2384, August 1998:
"The POP URL scheme is described using [ABNF]:
achar = uchar / "&" / "=" / "~" ; see [BASIC-URL] for "uchar" definition
auth = ";AUTH=" ( "*" / enc-auth-type )
enc-auth-type = enc-sasl / enc-ext
enc-ext = "+" ("APOP" / 1*achar) ;APOP or encoded extension mechanism name
enc-sasl = 1*achar ;encoded version of [SASL] "auth_type"
enc-user = 1*achar ;encoded version of [POP3] mailbox
pop-url = "pop://" server
server = [user-auth "@"] hostport ;See [BASIC-URL] for "hostport" definition
user-auth = enc-user [auth]
IMAP4 -----
Example:
From section 10 of "IMAP URL Scheme", RFC 2192, September 1997:
The IMAP URL:
<imap://minbari.org/gray-council;UIDVALIDITY=385759045/;UID=20>
Results in the following client commands:
<connect to minbari.org, port 143> C: A001 LOGIN ANONYMOUS sheridan@babylon5.org C: A002 SELECT gray-council <client verifies the UIDVALIDITY matches> C: A003 UID FETCH 20 BODY.PEEK[]
Notes:
<to be supplied>
Background:
From section 2 of "IMAP URL Scheme", RFC 2192, September 1997:
"The IMAP URL scheme is used to designate IMAP servers, mailboxes, messages, MIME bodies [MIME], and search programs on Internet hosts accessible using the IMAP protocol.
The IMAP URL follows the common Internet scheme syntax as defined in RFC 1738 [BASIC-URL] except that clear text passwords are not permitted. If :<port> is omitted, the port defaults to 143.
An IMAP URL takes one of the following forms:
imap://<iserver>/ imap://<iserver>/<enc_list_mailbox>;TYPE=<list_type> imap://<iserver>/<enc_mailbox>[uidvalidity][?<enc_search>] imap://<iserver>/<enc_mailbox>[uidvalidity]<iuid>[isection]
The first form is used to refer to an IMAP server, the second form refers to a list of mailboxes, the third form refers to the contents of a mailbox or a set of messages resulting from a search, and the final form refers to a specific message or message part. Note that the syntax here is informal. The authoritative formal syntax for IMAP URLs is defined in section 11."
From section 12 of "IMAP URL Scheme", RFC 2192, September 1997:
"This uses ABNF as defined in RFC 822 [IMAIL]. Terminals from the BNF for IMAP [IMAP4] and URLs [BASIC-URL] are also used. Strings are not case sensitive and free insertion of linear-white-space is not permitted.
achar = uchar / "&" / "=" / "~" ; see [BASIC-URL] for "uchar" definition
bchar = achar / ":" / "@" / "/"
enc_auth_type = 1*achar ; encoded version of [IMAP-AUTH] "auth_type"
enc_list_mailbox = 1*bchar ; encoded version of [IMAP4] "list_mailbox"
enc_mailbox = 1*bchar ; encoded version of [IMAP4] "mailbox"
enc_search = 1*bchar ; encoded version of search_program below
enc_section = 1*bchar ; encoded version of section below
enc_user = 1*achar ; encoded version of [IMAP4] "userid"
imapurl = "imap://" iserver "/" [ icommand ]
iauth = ";AUTH=" ( "*" / enc_auth_type )
icommand = imailboxlist / imessagelist / imessagepart
imailboxlist = [enc_list_mailbox] ";TYPE=" list_type
imessagelist = enc_mailbox [ "?" enc_search ] [uidvalidity]
imessagepart = enc_mailbox [uidvalidity] iuid [isection]
isection = "/;SECTION=" enc_section
iserver = [iuserauth "@"] hostport ; See [BASIC-URL] for "hostport" definition
iuid = "/;UID=" nz_number ; See [IMAP4] for "nz_number" definition
iuserauth = enc_user [iauth] / [enc_user] iauth
list_type = "LIST" / "LSUB"
search_program = ["CHARSET" SPACE astring SPACE] search_key *(SPACE search_key) ; IMAP4 literals may not be used ; See [IMAP4] for "astring" and "search_key"
section = section_text / (nz_number *["." nz_number] ["." (section_text / "MIME")]) ; See [IMAP4] for "section_text" and "nz_number"
uidvalidity = ";UIDVALIDITY=" nz_number ; See [IMAP4] for "nz_number" definition
UNC ---
Example:
pwg-unc:\\myprintserver\myprinter
Notes:
(1) Proposed new PWG standard URL scheme for UNC encapsulation (2) ALL printable ASCII characters are legal in the UNC, including the BACKSLASH (0x5C)
Background:
Microsoft uses UNC identifiers in Windows environments.
This archive was generated by hypermail 2b29 : Thu Jan 09 2003 - 18:04:27 EST