Hi Sarah!

> In general I agree that the attribute model for adding new data in our
> manifests makes them more extensible. However, there are tradeoffs with
> this approach, in particular with data that if mis-specified, could be
> potentially destructive. For example, with AI, if we made partition info
> an 'attribute' on the "target element" as opposed to a node in our
> schema, this means that if not found, or if mispelled or something like
> that in a manifest, the client, in this case AI client, would have to
> decide what to do since the data is missing. This could cause a
> potentially destructive act, if the user really wanted to preserve a
> partition but mistakenly misspelled the attribute name. Part of the
> design decision to use rng, and to make everything in it a real
> element(as opposed to attributes on an element) was so that our parser
> could do strong validation.

Good to know.  I agree that some action must be taken if mandatory
information is missing.  It's just a discussion about which tools
you would leverage to detect that information is missing, and where
you would provide defaults from.

> This has approach has downsides.
>
>
> Stephen mentioned SMF profiles and property groups. This works well for
> SMF, and a property that is mistyped in a profile simply isn't going to
> be understood, but I can't think of cases where this misunderstanding
> causes destructive behavior. Order in these property groups do not
> matter either, but in the case of AI, say a create and a delete of
> partition data could make a big difference if not ordered correctly. We
> can certainly address this within the AI client, by impose an order on
> these. I just point this out to help clarify the complexities in the
> installation environment.

This does clarify things.

> What I am looking at now is how to balance our need for strong
> validation, with using attributes where they could be used, and not
> cause destructive behavior. I am also look at xsd schema, in particular
> the use of mustUnderstand and/or mustIgnore and namespace to provide the
> extensibility we need, with the strong validation we also need.

Unfortunately I haven't left the DTD world yet, so I am no expert on RNG.
So I can't really follow you in this paragraph.  I certainly would give
up some usability if it meant better validation.

> What you and Stephen have said is all true. It isn't as straightforward
> in the install environment though to just do this, and it is taking a
> bit of thought and design to try to do this correctly. I also have to
> consider the impact of derived manifest capability and what kind of
> errors could be introduced with this as well.

I see.  Obviously I have a narrower focus:  I would like to pull data
out of -- say, a ConfigDB -- and then generate manifests.  Or I would
like to read in a manifest for infrastructure reports.  Or I would like
to clone an AI server, making some adjustments to the data on the
clone target.  Etc.  And I want to spend as little effort as possible
doing it. :-)

It's good to read about your considerations, since they make the
design clearer for me.  Thanks!


Regards -- Volker
-- 
------------------------------------------------------------------------
Volker A. Brandt                  Consulting and Support for Sun Solaris
Brandt & Brandt Computer GmbH                   WWW: http://www.bb-c.de/
Am Wiesenpfad 6, 53340 Meckenheim                     Email: vab at bb-c.de
Handelsregister: Amtsgericht Bonn, HRB 10513              Schuhgr??e: 45
Gesch?ftsf?hrer: Rainer J. H. Brandt und Volker A. Brandt

Reply via email to