Subject: PaceElementOrder: restart

From: Tim Bray <[email-masked]>
Date: Tue, 13 Jul 2004 11:11:04 -0700

I am starting a new thread for purely selfish reasons because of the 
way my mail client deals with veeeeeeery long threads, and because I 
think we've made some progress.  BUT, I don't like where we are.  I 
think we have consensus, not on what to do, but on the trade-offs, so 
let me try to write them down:

1. enforcing element order makes it harder for people who hand-author
2. we have to pick an order which is irritating because it's meaningless
3. enforcing order makes life easier for people who use (a significant 
body of) XSD-based tools.
4. enforcing order adds no significant difficulty for people who are 
program-generating Atom

(#4 is new, but seems pretty obvious).

I hate this trade-off, polluting a language design because of the 
broken-ness of a particular schema language is really irritating.

On balance, if the trade-off is really as presented, I'd probably lean 
to requiring order, but only by about 55/45.  Are there any new 
arguments we haven't thought of (please)?  -Tim

---

From: James M Snell <[email-masked]>
Date: Tue, 13 Jul 2004 13:05:00 -0600

> broken-ness of a particular schema language is really irritating.

+1

> arguments we haven't thought of (please)?  -Tim

Such constraints should only be imposed in the language if there is a 
solid reason to do so from the languages point of view.  Implementations 
should comform to the constraints of the spec, the spec should not comform 
to the limitations of various implementations.

-1 to requiring order.

- James M Snell
  [email-masked]
  http://www.ibm.com
  (877) 511-5082 / Office
  930-1979 / Tie Line

---

From: Robert Sayre <[email-masked]>
Date: Tue, 13 Jul 2004 15:01:56 -0400

> body of) XSD-based tools.

Only for parsing, right? They can generate Atom as if it's strictly 
ordered no matter what.

> 4. enforcing order adds no significant difficulty for people who are 

How useful is strict ordering in the presence of extension elements? 
What about existing vocabularies that are unordered, like XHTML?

Robert Sayre

---

From: Sam Ruby <[email-masked]>
Date: Tue, 13 Jul 2004 15:49:21 -0400

Tim Bray wrote:

> I am starting a new thread for purely selfish reasons because of the way 
> my mail client deals with veeeeeeery long threads, and because I think 
> we've made some progress.  BUT, I don't like where we are.  I think we 
> have consensus, not on what to do, but on the trade-offs, so let me try 
> to write them down:
> 

OK, I have been holding back.  In fact, I'm only sharing this because 
you said (please).  ;-)

I have some experience with testing interop of wire protocols based on 
XML.  XSD even.  The long and short of it is that #3 above is false as 
stated.  What is actually true is that enforcing order makes life easier 
for people who DEFINE XSD based schemas.

More background can be found here [1], but the punch line for the 
impatient: while the XSD tools that I am aware of will be strict in 
producing messages that conform to an ordered schema, they will be 
liberal in consuming messages with respect to the same ordered schemas.

Which raises a number of troubling questions: in particular, should a 
working group consider the observed but unspec'ed behavior of 
predominant implementations when considering such a question?  Even if 
the question at hand involves the polluting a language design simply 
because of the broken-ness of a particular schema language?  Does this 
reopen other questions related to Postel and Draconianianism?

These questions would be fun to ponder on a lazy Friday afternoon.  Pity 
that today is Tuesday.

- Sam Ruby

[1] http://www.intertwingly.net/stories/2002/07/29/expectMore.html

---

From: Mark Pilgrim <[email-masked]>
Date: Tue, 13 Jul 2004 16:46:11 -0400

On Tue, 13 Jul 2004 15:49:21 -0400, Sam Ruby <[email-masked]> wrote:
> Does this reopen other questions related to Postel and Draconianianism?

Oh dear God, I hope not.

-- 
Cheers,
-Mark

---

From: Dare Obasanjo <[email-masked]>
Date: Tue, 13 Jul 2004 15:17:24 -0700 (PDT)

> liberal in consuming messages with respect to the

That's not the point. The point is that if the schema
is explicitly unordered (i.e. using xs:choice with
maxOccurs=unbounded instead of an xs:sequence) then
the programming model generated by tools such as
XSD.exe which is what VS.NET uses behind the scenes to
generate stubs from a WSDL will not be strongly typed.

The fact that most XML Web Service stacks don't
actually perform schema validation when consuming XML
messages is interesting to note but I'm not sure it is
particularly pertinent in this discussion. 

My take is that order doesn't matter much for the
syndication case. Aggregator authors already have to
deal with unordered content in RSS so doing the same
in Atom won't be a big deal. As for casual developers,
they'll likely go through standard Atom libraries like
Atom.NET & Atomizer and thus would be insulated from
such issues. 

On the other hand, if there ever is a SOAP API, it
would be much preferable for the format to be ordered
in that context so that the generated classes for
users of tools such as VS.NET have a better developer
experience. 

=====
THINGS TO DO IF I BECOME AN EVIL OVERLORD #95
My dungeon will have its own qualified medical staff complete with bodyguards. That way if a prisoner becomes sick and his cellmate tells the guard it's an emergency, the guard will fetch a trauma team instead of opening up the cell for a look.

__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail