[jdev] Driving/Routing directions via XMPP

Richard Dobson richard at dobson-i.net
Tue Aug 17 11:13:08 CDT 2004


> On Wed, 18 Aug 2004 00:10, you wrote:
>> I don't see how your suggestion of child elements actually solves 
>> anything
>> what is the evil user crafted the following:
>>
>>     <src>
>>         <street>4555 Main Street</street>
>>         <jid>bob at jabber.org</jid>
>>     </src>
>>
>> You still don't know anymore than the original about which one should be
>> used,
>
> And yet, this stanza immediately fails my trivially-written XML schema, 
> and
> gets bounced back to the evil user before my application even has to smell
> it.

Yes but how many actually use this now, I havent heard of any clients or 
servers for that matter that actually validate every stanza they receive 
against an XML schema so this doesnt really help in the real world, in the 
real world code would have to be written to decide what to do rather than it 
being able to be handled by a schema. There is also another major problem 
with using schema validation in that it would effectively prevent 
extensibility if the schema was written the way you suggest which IMO is a 
rather bad thing, unless a method is created to specify where to download 
the appropriate schema from before processing the stanza which presents even 
more problems to performance in having to wait for the schema to download 
before you can process the stanza. Overall schemas are unlikely to be really 
all that useful in the real world where issues of performance and 
scalability are top priorities, certainly in a online service that is being 
accessed by possibly millions of people.

>> all it does is make it slightly more difficult to process and adds
>> unnecessary extra bytes.
>
> Maybe, if you still use the classic W3C DOM to manipulate all XML.  The 
> rest
> of the world have already discovered better APIs for this, such as XPath. 
> In
> XPath, selecting an attribute is the same as selecting an element, only 
> one
> character longer ("@street" versus "street".)

Also as far as XPath goes I don't think many people are using it at this 
moment in time (due to having to roll their own xml libraries and such to 
process the xmpp xml stream) so in the vast majority of cases it is not just 
a matter of a single character and will involve a lot more than that. Also I 
don't think XPath will help if you as much as you suggest as if you have 
more than one possible option you will need to still iterate through the 
elements that are there, which means you are doing effectively the same 
amount of code as you would have using DOM, its either that or you use XPath 
to check for all the possible options to find which ones do not return null, 
which seems a rather messy way to me, and will probably be more code than 
just iterating through the elements if you have more than a few options.

Your suggestions are interesting but you really do need to think more about 
real world applicability rather than theoretical best case scenarios.

Richard





More information about the JDev mailing list