[Home] [By Thread] [By Date] [Recent Entries]


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


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member