OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: attribute order (RE: Syntax Sugar and XML information models)



One way is to have a hashtable for the instance's explicit attributes.
Having collected all of them from one instance, iterate through the
attributes with defaults, see whether each is missing from the explicit
list, and add with default value if so.  This would obviate the need for
a hashtable for the attributes with defaults.

The alternative I think you're describing is to use a hashtable of
attributes with defaults, and as the explicit attributes are collected,
mark each one off in the defaulted attributes table if it is found
there.  Then the remaining defaults, produced by iterating over that
hashtable and ignoring marked entries, could be added to the explicit
attributes.

Both ways work, with approximately equivalent performance, but the
second way makes it easier to preserve the order of the explicit
attributes (as found in the instance).  The first way makes it easier to
preserve the order of non-explicit defaulted attributes (as found in the
DTD).

Jeff

"Simon St.Laurent" wrote:

>
>
> At 06:43 AM 3/30/01 -0800, Jeff Greif wrote:
> >Even a non-validating parser must provide default values for the
> >attributes not present, if such defaults are specified in the doc's
> DTD
> >or schema.  If some element can have 1000 possible attributes, some
> mix
> >of which is present in each instance, and you have a doc with several
>
> >thousand of those elements, the parser will run very slowly if it
> cannot
> >put the attributes in a hashtable when trying to fill in the
> defaults.
>
> Is that hashtable necessary for each of the instance elements, or just
> for
> the default lookup table?  I'm not sure that you'd have to have a
> hashtable
> per element if your lookup table supported marking which attributes
> weren't
> necessary and then dumped a report of which remained.  (Reset per
> element
> instance.)
>