On 02/02/10 10:02, Stephen Hahn wrote:
> * Sarah Jelinek<Sarah.Jelinek at sun.com>  [2010-02-02 13:47]:
>> Hi Volker,
>>
>> On 02/ 1/10 01:30 PM, Volker A. Brandt wrote:
>>> Hi all!
>>>
>>>
>>> Sorry that I missed commenting in this discussion earlier.  I am now trying
>>> to catch up.
>>>
>>>>> With this proposal, the grammar of the AI manifest is also being visited
>>>>> to shorten element/tag names where possible.  Because we're proposing the
>>>>> usage of dynamic manifest scripts to reference nodepaths from the AI 
>>>>> manifest,
>>>>> having shorter, simpler names makes this easier to use.  In addition to 
>>>>> this
>>>>> reason, there are currently elements who's names unneccessarily include 
>>>>> its
>>>>> heirarchical parent element name again.  For example,
>>>>>
>>>>>      <ai_target_device>
>>>>>              <target_device_name>
>>>>>              <target_device_type>
>>>>>              <target_device_vendor>
>>>>>              <target_device_size>
>>>>>              ...
>>>>>              ..
>>>>>
>>>>> could be simplified to
>>>>>
>>>>>     <target_device>
>>>>>              <name>
>>>>>              <type>
>>>>>              <vendor>
>>>>>              <size>
>>>>
>>>>
>>>> I like this. I will keep this in mind with the AI/DC Manifest schema
>>>> rework I am doing. This would translate well to use for both DC and AI.
>>>
>>> Sorry, but this really hurts my eyes.  And how are you distinguishing
>>> the<name>   element in another context?  This will be one ugly DTD. :-)
>>>
>>
>> We are using relaxNG as the schema. So, it wouldn't be an ugly DTD.
>> But, possibly an ugly relaxNG :-). The<name>  element is
>> distinguished by its parent. Unless I am missing your point.
>>
>>> I would much rather see a generic key/value object tree that can
>>> be nested.  Such as:
>>>
>>>    <node name="ai_target_device">
>>>       <attr name="name">namegoeshere</attr>
>>>       <attr name="type">   ...</attr>
>>>       <attr name="vendor">   ...</attr>
>>>       <attr name="size">   ...</attr>
>>>       <node name="some_child_of_ai_target_device">
>>>         <attr name="some_attr">   ...</attr>
>>>       </node>
>>>    </node>
>>>
>>> One might even go to the extreme of adopting Apple property lists.
>>>
>>> Software to parse this would be much easier to maintain, and
>>> the abstraction is much clearer.
>>
>> Why would software to parse this be easier to maintain?
>
>    Because if you need another attr type for a node, you need only to
>    change your parser, not your schema.  If you change your schema, then
>    you will find that older systems can't parse newer manifests.  (That
>    is, schema versioning becomes an issue.)
>
>    - Stephen
>
> * Is it really necessary to prefix entities with "ai_"
>
> * You might find that the property_group and property entities in the
>    smf(5) DTD useful, since they are designed for later extension.

Is there any advantage of using a DTD over just defining that abstraction
in the schema?


-ethan

Reply via email to