Hi, I have tested the adapter with the Woodstox' StAX implementation. I got the 'endPrefixMapping' events, as expected. Thus, it is a possible bug in the built-in java implementation. I am using java 7 update 15.
How should we proceed to report this? -- This week I am gonna integrate the work I have done into Xalan and study the possibility to use the same approach (an adaptor) to provide StAXResult support. Thanks, Samuel 2013/7/18 Samuel Medeiros <[email protected]> > Hello Michael, > > You will find attached a second version of the adapter. > Now, it's able to read events from both XMLStreamReader and XMLEventReader. > > Otherwise, as you will see by running the tests, there are 2 missing > events when using the xalam.xml file. > These events are 'endPrefixMapping' ones and I think it may be a bug in > the Java included StAX implementation. > > You can verify on the method 'adaptEndElementEvent(...)' of the class > 'StAX2SAXEventAdapter' that I call the method 'getNamespaces()' on the > EndElement instance. The behavior of this method is: "Returns an Iterator > of namespaces that have gone out of scope. Returns an empty iterator if no > namespaces have gone out of scope.", but it's not returning anything. > > I am gonna test this with the Woodstox' StAX implementation. > > Thanks, > Samuel > > > > 2013/7/11 Samuel Medeiros <[email protected]> > >> Hi Michael, >> >> Thanks for your reply. >> >> While you check if we can proceed with the same approach to the >> StAXResult, I am implementing the support for XMLEventReader. >> >> Sincerely, >> Samuel >> >> >> 2013/7/10 Michael Glavassevich <[email protected]> >> >>> Hi Samuel, >>> >>> Samuel Medeiros <[email protected]> wrote on 07/08/2013 05:39:34 PM: >>> >>> > Hi Michael, >>> > >>> > A StAXSource holds an XML source, i.e., XMLStreamReader or >>> XMLEventReader. >>> > >>> > In the adapter I have developed, I only have considered >>> > XMLStreamReader as a source. >>> > I think I also have to consider XMLEventReader and then modify my >>> > adapter. Do you agree? >>> >>> Yes, that's right. Should structurally be fairly similar to what you have >>> so far for the XMLStreamReader. >>> >>> > Also, I would like to know if you also have in mind any approach to >>> > implement the StAXResult. >>> >>> I need to double check but I think you could wire this in as a SAX >>> ContentHandler too, where the ContentHandler (a "SAX2StAXAdapter") takes >>> each SAX event and converts it to a call (or multiple calls) on the >>> XMLStreamWriter / XMLEventWriter. >>> >>> > Thanks, >>> > Samuel >>> > >>> > 2013/7/7 <[email protected]> >>> > Samuel, >>> > >>> > Thanks for your report. >>> > >>> > Sincerely, >>> > Steven J. Hathaway >>> > >>> > > Greetings, >>> > > >>> > > Following the approach suggested by Michael, I have developed the >>> first >>> > > version of the 'StAX to SAX events' adapter. >>> > > >>> > > To develop it, I have created a local project (attached) with the >>> > > following >>> > > structure: >>> > > >>> > > - *org.apache.xalan.stax.StAX2SAXAdapter >>> > > *Represents the adapter. >>> > > - *org.apache.xalan.sax.SAXHandler >>> > > *It's the SAX handler. It logs all incoming events into a stack. >>> > > - *org.apache.xalan.stax.test.StAX2SAXAdapterTest >>> > > *It tests the adapter by calling both SAXHandler >>> > > and StAX2SAXAdapter with a common XML file and verifying that >>> their >>> > > event >>> > > stacks are equal. >>> > > - *org.apache.xalan.stax.resource >>> > > *This package contains some XML files used in the tests: >>> xalam.xml, >>> > > birds.xml and xmark.xml. This last one is not included into the >>> > > attached >>> > > .zip file because its size is 35,7 MB. I have generated it using >>> XMark >>> > > ( >>> > > http://www.xml-benchmark.org/downloads.html). >>> > > >>> > > >>> > > As provided in the plan, this week I should study how to implement >>> > > StAXResult support, but I can also start integrating this adapter >>> into >>> the >>> > > Xalan code. >>> > > >>> > > Michael, what do you advise me to do? >>> > > >>> > > I am looking forward to having your feedback about this adapter. >>> > > >>> > > Thanks, >>> > > Samuel Queiroz >>> > > >>> > > >>> > > 2013/6/25 Michael Glavassevich <[email protected]> >>> > > >>> > >> Hi Samuel, >>> > >> >>> > >> Xerces has partial support for StAX but doesn't yet have an >>> > >> implementation >>> > >> of XMLStreamReader. >>> > >> >>> > >> For testing purposes I'd suggest using Woodstox [1]. It's a popular >>> open >>> > >> source StAX implementation which many Apache projects already use. >>> > >> >>> > >> There's also a complete implementation of StAX in all versions of >>> Java >>> > >> 6+, >>> > >> so you could use that for testing too. >>> > >> >>> > >> Thanks. >>> > >> >>> > >> [1] http://woodstox.codehaus.org/ >>> > >> >>> > >> Michael Glavassevich >>> > >> XML Technologies and WAS Development >>> > >> IBM Toronto Lab >>> > >> E-mail: [email protected] >>> > >> E-mail: [email protected] >>> > >> >>> > >> Samuel Medeiros <[email protected]> wrote on 06/25/2013 11:19:00 >>> AM: >>> > >> >>> > >> > Hi Michael, >>> > >> > >>> > >> > Please disconsider my first email in this thread. >>> > >> > I was thinking about implement StAX. However, this project is >>> > >> > nothing to do with this. >>> > >> > >>> > >> > I have read the tutorial [1] and the ideas got more clear for me: >>> > >> > In fact, what is proposed is to accomplish the XLS Transformation >>> by >>> > >> > receiving a StAXSource and sending the result trough a StAXResult. >>> > >> > >>> > >> > The approach you have proposed in your last message is now clear >>> for >>> > >> > me: I have to iterate over the StAXSource by using an >>> XMLEventReader >>> > >> > / XMLStreamReader and translate these events to SAX ones. >>> > >> > >>> > >> > I just have to check how to apply this approach into the code. >>> > >> > >>> > >> > -- >>> > >> > >>> > >> > I know the implementation is based on the interfaces defined by >>> > >> > JAXP. However, for run the samples as well as the tests I will >>> > >> > write, we are gonna need an implementation. By default, Xalan uses >>> > >> > Xerces. The question is: does Xerces support StAX? >>> > >> > >>> > >> > Thanks, >>> > >> > Samuel >>> > >> > >>> > >> > [1] http://tutorials.jenkov.com/java-xml/index.html >>> > >> >>> > >> > 2013/6/25 Samuel Medeiros <[email protected]> >>> > >> > Hi Michael, >>> > >> > >>> > >> > Thanks for this information. >>> > >> > I am gonna study exactly how to apply this approach into the >>> source >>> > >> code. >>> > >> > >>> > >> > If I have questions, I will let you know. >>> > >> > >>> > >> > Sincerely, >>> > >> > Samuel >>> > >> > >>> > >> >>> > >> > 2013/6/24 Michael Glavassevich <[email protected]> >>> > >> > Hi Samuel, >>> > >> > >>> > >> > One approach you could take for StAXSource would be to write a >>> StAX >>> to >>> > >> SAX >>> > >> > converter. This would take an XMLStreamReader / XMLEventReader as >>> > >> input >>> > >> > and generate SAX events on to a ContentHandler. You could wire >>> that >>> to >>> > >> the >>> > >> > TemplatesHandler (org.apache.xalan.processor.StylesheetHandler) >>> > >> allowing >>> > >> > you to reuse the existing components for building the Templates >>> > >> object. >>> > >> > >>> > >> > Thanks for the update. >>> > >> > >>> > >> > Michael Glavassevich >>> > >> > XML Technologies and WAS Development >>> > >> > IBM Toronto Lab >>> > >> > E-mail: [email protected] >>> > >> > E-mail: [email protected] >>> > >> > >>> > >> > Samuel Medeiros <[email protected]> wrote on 06/23/2013 >>> 04:30:38 >>> > >> PM: >>> > >> > >>> > >> > > Hi Michael, >>> > >> > > >>> > >> > > I have read the documentation available at the Xalan's website >>> and >>> > >> > > also its pointers to XSL/XSLT, XPath and JAXP. I have also run >>> some >>> > >> > > samples and did some tracing by adding some prints into the >>> code. >>> > >> > > >>> > >> > > It's quite clear for me how the things work, but I am not >>> > >> > > familiarized enough with the code. >>> > >> > > >>> > >> > > According to [1], the javax.xml.transform.stax was added to >>> support >>> > >> > > StAX. This package consists of the interfaces: TemplatesHandler >>> > >> > > and TransformerHandler; and classes: StAXResult and StAXSource. >>> > >> > > Also, the packages javax.xml.stream, javax.xml.stream.events and >>> > >> > > javax.xml.stream.util were added to support StAX. In addition, >>> the >>> > >> > > class Validator have also to accept StAXSource. >>> > >> > > >>> > >> > > For me, to add StAX support, it would be just implement the >>> > >> > > interfaces provided by these packages and plug them into the >>> > >> > > existent code. For example, in the >>> > >> > > org.apache.xalan.processor.TransformerFactoryImpl's method >>> > >> > > newTemplates(Source source), I would add a condition to test if >>> the >>> > >> > > source is a StAX one and then create the correct >>> TemplatesHandler >>> > >> > > instance, that will create the Templates object. >>> > >> > > >>> > >> > > I don't know exactly how prepared is Xalan to receive these >>> changes. >>> > >> > > >>> > >> > > I need help to understand the project's structure. Then I will >>> be >>> > >> > > able to do the work of the 2 next weeks (as provided in the >>> plan): >>> > >> > > define precisely the changes I will do. >>> > >> > > >>> > >> > > Sincerely, >>> > >> > > Samuel >>> > >> > > >>> > >> > > [1] >>> http://docs.oracle.com/javase/6/docs/technotes/guides/xml/jaxp/ >>> > >> > > ReleaseNotes_160.html >>> > >> > >>> > >> >>> > >> > >>> --------------------------------------------------------------------- >>> > >> > To unsubscribe, e-mail: [email protected] >>> > >> > For additional commands, e-mail: [email protected] >>> > >> >>> > >> >>> > >> >>> --------------------------------------------------------------------- >>> > >> To unsubscribe, e-mail: [email protected] >>> > >> For additional commands, e-mail: [email protected] >>> > >> >>> > >> >>> > > >>> > > --------------------------------------------------------------------- >>> > > To unsubscribe, e-mail: [email protected] >>> > > For additional commands, e-mail: [email protected] >>> >>> Michael Glavassevich >>> XML Technologies and WAS Development >>> IBM Toronto Lab >>> E-mail: [email protected] >>> E-mail: [email protected] >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >> >> >> -- >> Samuel de Medeiros Queiroz >> Formal Methods Group (GMF - UFCG - Brazil) >> > > > > -- > Samuel de Medeiros Queiroz > Formal Methods Group (GMF - UFCG - Brazil) >
