Hi Michael,

Thank you for your answer first. I think i am a little confused by W3C's
recommendation about function parseWithContext's parameter *input of type
LSInput*.The recommendation is as follows:

*input of type LSInput*
*The LSInput from which the source document is to be read. The source
document must be an XML fragment, i.e. anything except a complete XML
document (except in the case where the context node of type DOCUMENT_NODE,
and the action is ACTION_REPLACE_CHILDREN), a DOCTYPE (internal subset),
entity declaration(s), notation declaration(s), or XML or text
declaration(s).*
**
Does it mean that the input XML fragment can only include DOCTYPE/entity
declaration/notation declaration or XML or text declaration ? So,  i want to
know, can this fragment include* *XML style file include declation( for
example:<?xml-stylesheet type="text/css" href="cd_catalog.css"?>), or a XML
element node(for example:<element
id="1"><name>firstElement</name></element>), or some thing else?

If the input include  a complete XML document indeed,what will my
parseWithContext
function implementation do?Throw out an exception?

The last question,if parseWithContext(LSInput input, Node contextArg, short
action) function has the following input parameters:
input:<element id="1"><name>firstElement</name></element>
contextArg:<doc><element id="exist1"><name>leiyin</name></element></doc>
action:ACTION_INSERT_AFTER
I think the function with return the DOM Node *"<doc><element
id="exist1"><name>leiyin</name></element></doc><element
id="1"><name>firstElement</name></element>",* am i right? And what if the
parameter input include "<element id="1"><name>firstElement</name>"
(yes,missing
end element), what will the function implementation do?I think it will throw
an exception, am i right ?

Thank you very much and expecting your reply :)



2010/3/16 Michael Glavassevich <[email protected]>

>  Hi Yin,
>
> parseWithContext() isn't quite that simple. The input to this method is an
> XML fragment which would generally not be a complete XML document.
>
> The goal of the project is to implement support for parsing XML fragments.
> LSParser.parse(LSInput) is only capable of reading complete XML documents
> and so cannot be used to implement parseWithContext().
>
>
> Thanks.
>
> Michael Glavassevich
> XML Parser Development
> IBM Toronto Lab
> E-mail: [email protected]
> E-mail: [email protected]
>
> Yin Lei <[email protected]> wrote on 03/12/2010 09:28:12 AM:
>
>
> > Hi Michael,
> >
> > I want to hold the project "Asynchronous LSParser and
> > parseWithContext" as my GSoC 2010 proposal,and I have been researching
> >
> > Xerces's code for a long time. I will tell you my idea about this
> > project and expecting for your advises.
> >
> > In Xerces-J 2.9.1's code,class
> > org.apache.xerces.parsers.DOMParserImpl implements interface
> > LSParser,but DOMParserImpl does not support asynchronous
> > mechanism,if we want to make DOMParserImpl support asynshronous
> > mechanism,we can achieve it by the following two steps:
> >
> > 1.DOMParserImpl should implements interface EventTarget
> >
> > Use a Vector ojbect (we name it repository) to store all the action
> > listeners registered in the current LSParser object.Each of
> > the action listener is made up of three parts,type,useCapture and
> > event handler function. And then,we need achieve function
> > addEventListener,dispatchEvent and removeEventListener.
> > addEventListener: just add a action listener object in to repository
> > .We should notice that listener with the same parameters can
> >                           only be added once.
> > dispatchEvent:traverse each item of repository,if some one has the
> > same type value with the event and its useCapture value is
> >                          true,let's dispatch its handleEvent function.
> > removeEventListener: traverse each item of repository,if some one is
> > the same as the object in the parameter,just remove this
> >                            item from repository.
> >
> > 2.implement asynchronous mechanism
> >
> > When DOMParserImpl object's parse() function is dispatched,set busy
> > value true, start a Thread to parse XML document in
> > LSInput,and then return null value. When XML parse thread finish its
> > parse job,set busy value false,create a LSLoadEvent object
> > with type value load,dispatch function dispatchEvent(Event evt).If
> > user register any actionlistener for load event,finish the
> > job defined in actionlistener's handleEvent function.
> >
> >
> > Implement function parseWithContext(LSInput input, Node contextArg,
> > short action)
> >
> > parseWithContext is a synchronous function (even if LSParser is in
> > asynchronous model). I think its implemention is simple (may
> > be because i am naive), we just use DOMParserImpl's parse(LSInput
> > input) function parse LSInput stream to a DOM tree, and merge this
> > DOM tree with Node contextArg according parameter action, then
> > return the result DOM tree.
> >
> > This is my mainly idea about this project,if you have any
> > ideas,please let me know,thank you!
> >
> > Best regards
>
> > 2010/3/11 Michael Glavassevich <[email protected]>
> > Hi Yin,
> >
> > Welcome to the mailing list. The LSParser project from the GSoC 2009
> > idea list is still available this year if you're interested.
> >
> > Thanks.
> >
> > Michael Glavassevich
> > XML Parser Development
> > IBM Toronto Lab
> > E-mail: [email protected]
> > E-mail: [email protected]
> >
> > Yin Lei <[email protected]> wrote on 03/09/2010 10:51:39 PM:
> >
> > > Hi guys,
> >
> > >
> > >  I am  interested about the project "Asynchronous LSParser and
> > > parseWithContext"  at Gsoc 2009 idea list.And i noticed that this
> > > project have not been done yet,so,i have been learning some
> > > background knowledge about this project, and want to hold this
> > > project as my GSoC 2010 proposal. But i am not sure whether this
> > > subject will remain this year or not.Can anyone tell me?
> > >
> > > Thank you & best regards
>
>

Reply via email to