[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [dita] Definition of Keyscope Name Rules
Thanks Eliot This makes sense although I think there will be certain processing environments - perhaps editors - where a given keyname needs to be separated into its keyscope and keyname parts. In which case a processor will need a keyscope context as well as a simple combined name context. The extra period characters in the keyscope will likely generate some confusion and perhaps some extra processing required to establish the keyscope context - but we can leave that discussion to another day. Jim > -----Original Message----- > From: dita@lists.oasis-open.org [mailto:dita@lists.oasis-open.org] On Behalf > Of Eliot Kimber > Sent: March-29-16 10:04 AM > To: dita > Subject: [dita] Definition of Keyscope Name Rules > > I think I was misremembering my original research. What I said in the context > of the DITA OT issue that brought all this up was: > > "Since key scope names are used in key references they must have the same > restrictions." > > I read through the parts of the spec that either mention or define key scopes > and could find no direct language but I thought I had. Maybe Chris N. can > find it. > > In any case, since you can override a scope-qualified key with a normal > @keys value it must be the case that key scope names have the same lexical > rules as key names (including allowing periods, as crazy as that might seem). > > For example, this should be valid: > > <topicref keyscope="foo.bar"> > <topicref keys="baz" .../> > </topicref> > > Meaning that keyref="foo.bar.baz" is a reference to the key "baz" in the > scope "foo.bar". > > But we could also have in a parent scope: > > <topicref keys="foo.bar.baz" .../> > > Which overrides the scope-qualified key name "foo.bar.baz" from the > descendant scope. > > As far as the processing is defined, the result of constructing all the key > spaces is a set of key-name-to-resource bindings where each key name > reflects any applicable key scopes by simple string concatenation of the key > scope names to the base key names. > > For the purpose of resolving key references you need to know what the key > scope *boundaries* are but you don't care what the key scope name is > because you are simply looking up the key name you have in the current > scope, which, by the processing rules, reflects all qualified and unqualified > keys in the current scope, per the rules for propagating key definitions up > and down the scope hierarchy. > > Cheers, > > E. > > ---- > Eliot Kimber, Owner > Contrext, LLC > http://contrext.com > > > > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://www.oasis- > open.org/apps/org/workgroup/portal/my_workgroups.php
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]