17

Estaba pensando en Registering an Application to a URL Protocol y me gustaría saber qué caracteres están permitidos en un esquema.Caracteres válidos para esquemas de URI?

Algunos ejemplos:

  • h323 (tiene números)
    • h323:[<user>@]<host>[:<port>][;<parameters>]
  • z39.50r (tiene un . así)
    • z39.50r://<host>[:<port>]/<database>?<docid>[;esn=<elementset>][;rs=<recordsyntax>]
  • paparazzi:http (tiene un :)
    • paparazzi:http:[//<host>[:[<port>][<transport>]]/

Entonces, ¿qué caracteres puedo usar apetece?
Podemos tener ...

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

... etc., Según se desee, o caracteres en el esquema están restringidos por ¿estándar?

Respuesta

20

Según RFC 2396, Apéndice A:

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

Significado:

El esquema debe comenzar con una letra (mayúscula o minúscula), y puede contener letras (caso aún superior e inferior), número, "+", "-" y ".".


Nota: en el caso de

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

el esquema es sólo la parte "paparazzi".

+0

Ya veo. Pero hay RFCs que usan números ... ¿Por qué? –

+0

Los números están permitidos en el esquema de URI, pero no como primer carácter. 'a234' es válido, mientras que '4bcd' no lo es. –

+0

¿Cree que el hecho de que se use solo como un protocolo de URL en Windows tiene algún impacto en la usabilidad de otros personajes? –

7

El scheme according to RFC 3986 se define como:

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

Así el esquema debe comenzar con un carácter alfabético (A - Z, a - z) y puede ser seguido por cualquier número de caracteres alfanuméricos, +, - o ..

+0

¿Crees que utilizarlo como un protocolo de URL solo para Windows tiene algún impacto en los caracteres utilizados? Si eso cambia algo, haría algunas pruebas ... –

5

Quoth RFC 2396:

nombres de esquema consisten en una secuencia de caracteres que comienzan con una letra caso inferior y seguidas por cualquier combinación de minúsculas letras, dígitos, más ("+"), período ("."), o guión ("-").

Cuestiones relacionadas