[
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
|