[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

fast or readable ... [Re: Fast text output from SAX?


wsa from
Elliotte Rusty Harold wrote:

> At 2:48 PM -0700 4/13/04, Dennis Sosnoski wrote:
>
>> Obviously I can't test every possible internal form that might be 
>> used by an application. However, the vast majority of XML document 
>> processing in Java is currently built on the event streams produced 
>> by SAX parsers. Any general XML format should be convertible to and 
>> from an event stream of this type, and in practice that's the way any 
>> alternative general formats are likely to be used (at least in the 
>> near term).
>
> That doesn't sound at all plausible to me. If I have a specific 
> internal data structure that I wish to convert to XML, I would never 
> go through SAX. If I really didn't care about performance I might go 
> through XOM or JDOM, but if I cared about performance I'd just dump 
> out the strings or bytes as seemed appropriate. While certainly a few 
> people are using the SAX API to drive output, it's hardly a common 
> thing to do, nor is it at all necessary. I just can't see how the task 
> you want to benchmark corresponds to how XML is used.
>
> The fact is XML is deliberately simple enough to be output 
> straight-forwardly without any fancy libraries.  

simple enough? i must disagree based on my experience. it may be true 
for case of writing few tags but not for anything more *especially* if 
namespaces are involved: try to maintain namespace prefix mappings by 
hand - in one of SOAP lib i wrote i really _did_ care about performance 
and streaming and used write()  ... and it was real mess and nightmare 
to maintain/debug.

now things no longer matter as for SOAP 1.2 it got easier as i can not 
do streaming so **I Learned to Stop Worrying and Love the SOAP :)**

> I can believe a format like XBIS might be so complex that it really 
> requires the overhead of a special library just for output. But XML 
> just isn't that complicated.  Unfortunately the massive gains in 
> programmer productivity from using a straight-forward, text format 
> that can be inspected and debugged in any text editor are rarely 
> measured by benchmarks. :-(

there is also a whole issue of nice and well formatted XML (elegant?!) 
versus functional and correct but unreadable (c18n come to mind). here 
is a simple example - which one is easier to read? this (it could be 
smaller if it had less of "useless" white spaces):

<?xml version='1.0'?><S:Envelope 
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xmlns:widget='http://widgets.com'
    xmlns:wsa='http://schemas.xmlsoap.org/ws/2003/03/addressing'
    xmlns:wsp='http://schemas.xmlsoap.org/ws/2002/12/policy'
    xmlns:S='http://schemas.xmlsoap.org/soap/envelope/'>
  <S:Header>
    
<wsa:Action>http://www.ibm.com/xmlns/stdwip/web-services/WS-BrokeredNotification/RegisterPublisherResponse</wsa:Action>
    <wsa:MessageID>urn:test:1083042837155</wsa:MessageID>
    
<wsa:To>http://schemas.xmlsoap.org/ws/2003/03/addressing/role/anonymous</wsa:To>
    <wsa:From>
      <wsa:Address>http://192.168.1.100:17600/notification</wsa:Address>
    </wsa:From>
    <wsa:RelatesTo>urn:1083042836764</wsa:RelatesTo>
  </S:Header>
  <S:Body>
    <wsbn:RegisterPublisherResponse
        
xmlns:wsnt='http://www.ibm.com/xmlns/stdwip/web-services/WS-BaseNotification'
        
xmlns:wsbn='http://www.ibm.com/xmlns/stdwip/web-services/WS-BrokeredNotification'>
      <wsbn:PublisherRegistrationReference>
        <wsa:Address>http://192.168.1.100:17600/notification</wsa:Address>
        <wsa:ReferenceProperties>
          <widget:ResourceID>pub1</widget:ResourceID>
        </wsa:ReferenceProperties>
      </wsbn:PublisherRegistrationReference>
    </wsbn:RegisterPublisherResponse>
  </S:Body>
</S:Envelope>

or this (note lot of duplicate namespace declarations ...)?

<?xml version=\"1.0\"?><S:Envelope 
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" 
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" 
xmlns:widget=\"http://widgets.com\" 
xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2003/03/addressing\" 
xmlns:wsp=\"http://schemas.xmlsoap.org/ws/2002/12/policy\" 
xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><S:Header 
xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><wsa:Action 
xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2003/03/addressing\">http://www.ibm.com/xmlns/stdwip/web-services/WS-BrokeredNotification/RegisterPublisherResponse</wsa:Action><wsa:MessageID 
xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2003/03/addressing\">urn:test:1082429845737</wsa:MessageID><wsa:To 
xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2003/03/addressing\">http://schemas.xmlsoap.org/ws/2003/03/addressing/role/anonymous</wsa:To><wsa:From 
xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2003/03/addressing\"><wsa:Address 
xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2003/03/addressing\">http://192.168.1.100:65390</wsa:Address></wsa:From><wsa:RelatesTo 
xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2003/03/addressing\">urn:1082429845667</wsa:RelatesTo></S:Header><S:Body 
xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><wsbn:RegisterPublisherResponse 
xmlns:wsnt=\"http://www.ibm.com/xmlns/stdwip/web-services/WS-BaseNotification\" 
xmlns:wsbn=\"http://www.ibm.com/xmlns/stdwip/web-services/WS-BrokeredNotification\"><wsnt:PublisherRegistrationReference 
xmlns:wsnt=\"http://www.ibm.com/xmlns/stdwip/web-services/WS-BaseNotification\"><wsa:Address 
xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2003/03/addressing\">http://192.168.1.100:65390</wsa:Address><wsa:ReferenceProperties 
xmlns:wsa=\"http://schemas.xmlsoap.org/ws/2003/03/addressing\"><widget:ResourceID 
xmlns:widget=\"http://widgets.com\">pub2</widget:ResourceID></wsa:ReferenceProperties></wsnt:PublisherRegistrationReference></wsbn:RegisterPublisherResponse></S:Body></S:Envelope>


alek

-- 
The best way to predict the future is to invent it - Alan Kay


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.