I have similar concerns about the use of attributes with parallel values.
I have this nagging feeling that we are going to regret this direction.
But thus far it has been the least bad solution that we have found.
We have arrived at this unfortunate point because the current binary
encoding has painted us into a corner. An XML encoding would=20
allow a very simple solution for dictionaries.
We considered having dictionary members appear as normal attributes
surrounded by begin-dictionary and end-dictionary "values", but this=
would potentially create name conflicts with names at the top level for
that don't know about dictionaries. This solution works if we force a=
change or all existing parsers add support for it.
We considered having a dictionary structure which would be a new type
whose values are nested in an existing value. For small dictionaries, this
is the obvious and simple solution, but if we kept the existing limit
of 1023 octets per value, some dictionaries would be impossible. Picking=20
a value that is large enough for all likely dictionaries but doesn't burden
small implementations was difficult and didn't seem to solve the problem.
We looked at ways to keep the 1023 limit and instead chunk the dictionary
into multiple values. I had a reasonable but very ugly solution which=20
concatenated the chunks together and use "begin-dictionary" and=20
"end-dictionary" "values" to indicate the structure.
By turning the dictionary problem into a naming problem, we seem to have
side stepped all of these issues, but as you point out data structures were
invented for a reason.
Do you have any suggestions for what we should do?
At 01:16 PM 3/25/98 , James Walker wrote:
>Tom Hastings wrote:
>> For the IPP telecon, Wed, 3/25:
>> Roger, Bob, and I have been working on various dictionary proposals.
>> Briefly, the scheme isn't really a dictionary at all (previous
>> versions were).=A0 Other earlier versions were adding a new addressing
>> mechanism for attributes in dictionaries.
>> This proposal adds no new addressing mechanisms,
>> but justs add a new out-of-band value to encode the new Model attribute
>> syntax of 1setOf 1setOf (doubly nested values).=A0 Instead, we use the
>> idea of attributes with parallel values, like we already have for
>> "printer-uri-supported" and "uri-security-supported".
>As discussed in the telecon today, I think that the parallel attribute
>idea is a bad one... it does not scale well, it is difficult for users
>to understand and get right, it is error-prone, etc.=A0 Our experience
>from the implementation of parallel attributes in DPA has not been a
>good one.=A0 All in all, I believe that data structures are a good idea,
>but trying to describe data structures using parallel attributes does
>> I've left the rejected example that uses the 'dictionary' attribute=
>> in the document.=A0 I've also listed the alternatives that we considered
>> and the reasons for rejecting them.
>I simply do not understand why the original concept of a dictionary
>value tag (with its associated value length) would not work well.
>This is the example that is shown in Tom's document.
>Jim Walker <email@example.com>
>System Architect/DAZEL Wizard
>DAZEL Corporation, Austin, TX