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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   fast or readable ... [Re: [xml-dev] Fast text output from SAX?

[ Lists Home | Date Index | Thread Index ]

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





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS