Hi Neeraj,
> Agreed , these are hard to do and truly speaking, hard for me to
visualize
*certain* things , (i have many...) like how we are actually going to use
fDependencyMap instance of Hashtable where we store XSDocumentInfo and
dependecies. Any insight will be helpful.
That Hashtable's primary purpose is this: consider the situation in which
schema A imports schema B, and schema B imports schema C, but A and C have
no relationship. Then point 4 of QName resolution from 3.15.4 of the
Schema Structures spec implies that no component from A can reference
anything from C. Thus, when the handler gets a request from a traverser
working on one of A's components, it must have a way to know which of the
potentially many schemas that it knows about may be legitimately referred
to by that component. And of course fDependencyMap provides as handy a way
as any to make sure we traverse everything we're supposed to.
> Have u given any thoughts about designing SchemaValidator and issues u
have come across ? It would be good if u post something on that. Sandy has
posted some interesting things. Thanks.
We've thought about this a bit; I think Sandy's been the main thinker. But
I'll try quickly to paint a broad picture as best I can:
DOM level 3 will require us to be able to revalidate DOM trees. We'd like
to do this as efficiently as possible--and indeed we'd like our overall
document validation to be as fast as possible. So if we're building a DOM
tree we'd thought to incorporate the index of each Element (as taken from
the grammar) into the DOM nodes. Thus, if one of the node's children
changes, we don't have to revalidate the whole tree: We can just fetch the
parent's element index and derive its particle index, type etc. from there
as needed.
Now there are some interesting questions about how we handle xsi:type's and
how we keep track of which grammar the index pertains to in this scenario.
That's the main reason why there's so much scope for thought.
So FWIW that's my understanding; Sandy will doubtless have more to say at
some point.
Hope that helps to some degree,
Neil
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]