I thought about the forward/backward domain name issue and came up with the
insight we no longer need yaml: - we can use http: instead. See the
following YAC. I'm changing my vote for it instead of YAC 19.
As for XML and Clark's point that it may appear in XML namespace URIs -
that's not a problem. An XML namespace, when used in YAML, *always* ends
with a '$tag-name'. Hence there's no ambiguity; to get the original XML
namespace, just strip away anything after the last '$' - and this would be
the XML tag name. The namespace URI itself can contain anything at all, $
What you won't ever be able to do is know whether a particular type URI is
an XML based one, just by looking (though guessing that anything ending with
'$tag' is XML based would be accurate most of the time). However, this
restriction can't be helped, no matter which scheme we use.
# YAC 20
abstract: Avoiding the yaml: scheme
Same as YAC 19, except for avoiding the use of the 'yaml:' scheme
and using the 'http:' scheme instead. 'http://yaml.org/type' will be
used for language independent types and 'http://language.yaml.org/type'
will be used for language specific types.
Shorthands will be handled as follows:
A method '!scheme:...' is preserved as is.
Marker: There's a ':' and it appears before any '/' character.
A method '!dns.domain.tld/...' is prefixed with 'http://'.
Marker: There's a '/' before any ':' character; there is
a '.' before the '/'.
A method '!one-word/...' is a shorthand for 'http://one-word.yaml.org/...'
Marker: There's a '/' before any ':'. There is no '.' before the '/'.
A '!type' is prefixed with 'http://yaml.org/'. Marker: No ':' and no '/'.
Other than the above changes, this YAC is identical to YAC 19 in every
respect (in particular, the semantics of types defined in the yaml.org
and language.yaml.org domains).
This avoids the need for defining, registering and promoting a
new URI scheme. This would allow YAML type names to be "legal"
from the very start. All the technical merits of YAC 19 are
One possible down side is that by encouraging people to use 'http:'
URL based URI names for their type names, we raise the issue of "what
does a type URI point to". This can be addressed by explicit wording
in the spec saying that YAML does not require or recommend that a type
name URI would point to any particular form of content, even in the
(common) case where the type name URI happens to be a URL. Note that
YAML allows arbitrary type name URI forms, and many of these don't allow
content retrieval in the first place. Also note that 'http:' based type
names are unavodable anyway due to their use in XML, so this question
has to be answered regardless of this YAC.
# An http based type (using XML namespaces).
# All possible ways to specify the integer type.
# All possible ways to specify a Perl type.
# All possible ways to specify an application specific type.
# Illegal formats
# Specifying a format.
# Using a prefix.
- !^p ]
This is an HTML paragraph.
# The current votes by the YAML core team members.
replaced by: