17

Ich dachte an Registering an Application to a URL Protocol und ich würde gerne wissen, welche Zeichen in einem Schema erlaubt sind?Gültige Zeichen für URI-Schemata?

Einige Beispiele:

  • h323 (hat Zahlen)
    • h323:[<user>@]<host>[:<port>][;<parameters>]
  • z39.50r (hat eine . auch)
    • z39.50r://<host>[:<port>]/<database>?<docid>[;esn=<elementset>][;rs=<recordsyntax>]
  • paparazzi:http (hat eine :)
    • paparazzi:http:[//<host>[:[<port>][<transport>]]/

Also, was Zeichen kann ich bilde mit?
Können wir ...

  • @:TwitterUser
  • #:HashTag
  • $:CapitalStock
  • ?:ID-10T

... etc., Je nach Wunsch, oder Zeichen in der Regelung durch beschränkt werden Standard?

Antwort

20

Nach RFC 2396, Anhang A:

scheme  = alpha *(alpha | digit | "+" | "-" | ".") 

Bedeutung:

Das System sollte mit einem Buchstaben (Groß- oder Kleinschreibung) und kann beginnen Buchstaben enthält (noch Groß- und Kleinschreibung), Nummer, "+", "-" und ".".


Hinweis: im Falle von

paparazzi:http:[//<host>[:[<port>][<transport>]]/ 

das Schema ist nur die "Paparazzi" teil.

+0

Ich sehe. Aber es gibt RFCs, die Zahlen verwenden ... Warum? –

+0

Nummern sind im URI-Schema erlaubt, aber nicht als erstes Zeichen. 'a234' ist gültig, während '4bcd' nicht gültig ist. –

+0

Glauben Sie, dass die Tatsache, dass es nur als URL-Protokoll unter Windows verwendet wird, Auswirkungen auf die Benutzerfreundlichkeit anderer Charaktere hat? –

7

Die scheme according to RFC 3986 ist definiert als:

scheme  = ALPHA *(ALPHA/DIGIT/"+"/"-"/".") 

So ist die Regelung mit einem Buchstaben beginnen müssen (A - Z, a - z) und kann durch eine beliebige Anzahl von alphanumerischen Zeichen folgen, +, - oder ..

+0

Glauben Sie, dass die Verwendung als Windows-URL-Protokoll Auswirkungen auf die verwendeten Zeichen hat? Wenn das etwas ändert, würde ich einige Tests machen ... –

5

Quoth RFC 2396:

Schema Namen bestehen aus einer Folge von Zeichen mit einem Kleinbuchstaben beginnen und durch eine beliebige Kombination von Kleinbuchstaben Buchstaben, Ziffern gefolgt, plus („+“), Zeit (".") oder Bindestrich ("-").