From: Damian C. <pd...@al...> - 2004-08-30 11:42:48
|
On Sunday, Aug 29, 2004, Oren Ben-Kiki wrote: > Then again, the syntax is pretty awkward if we use ':': > > %TAG:prefix:tag:domain.tld,2004-08/path/ If you want to have multiple tag-prefix-URI mappings, then here's my silly suggestion: move all the tag-abbreviation definitions in to a separate file. This file can be shared by all YAML documents that use the same abbreviations. Call it a YADA file (with some excuse like YAML Document Abbreviations). Then we have --- %YADA:foo.yada - !yaml:int 7 - !foo:tag some stuff - !tag:my.com,2002/baz more stuff where foo.yada contains: --- yaml version: 1.0 tags: yaml: tag:yaml.org,2002/ foo: tag:foo.com,2005/bar/ Obviously YADA files are in YAML syntax (except that they should not themselves have a YADA directive). The downside of this is that YAML files using YADA are no longer stand-alone; you have to read the YADA file in addition to the YAML file to make sense of the tags. On the other hand, if you do not care about the tags, you can skip the YADA and treat all scalars as strings and all collections using the default classes. The strongest objection is that the URI for the YADA file is a resolvable URI, and this imposes assumptions about how and where YAML documents are stored (something that the use of 'tag' URIs is supposed to avoid). The alternative is to identify the YADA using a non-resolvable URI, such as a 'tag' URI, and trust the application to locate the YADA through some indirect mechanism. But then it would make sense to use the tag URI for the document to locate the YADA file...which then looks a lot like a cut-down schema. Full circle? Not quite: the YADA file is *not* a schema; it only contains the minimal information required to expand !-tags to URIs. Nothing in the YADA file should be passed up to the calling application. It might conceivably be used to carry other syntax-level tweaks (character encoding, say). Having said all that, we need to consider whether having multiple sources of tag URIs is a desirable feature. In XML namespace prefixes are required because people want to mix arbitrary XML vocabularies up together in a kind of intermingled froth; does the same truly apply to YAML? -- Damian Cugley, Alleged Literature http://www.alleged.org.uk/pdc/ |