Re: Options for dealing with IDs

Long ago and far away, in a note much earlier in this thread, Chris Lilley 

> NW> Hmm. I don't think I'd seriously considered the possibility that 
> NW> specs would solve the problem by saying "in FooML, all attributes
> NW> named 'id' are of type ID by definition and must appear in the 
> NW> with that [attribute type]". But maybe they would.
> I cite exhibit A, the SOAP specification, as an existence proof.

Actually, speaking for myself and not the XMLP WG:  I think the error if 
any is in SOAP encoding claiming that soapEnc:ID is of type xsd:ID.  I 
think what's intended in SOAP encoding is that the soapEnc:IDs and 
soapEnc:IDREFs be much more like key and keyref.   Why? Becuase the 
encoding is really just creating a graph that's embedded in the SOAP 
envelope.  >The only elements that can be referenced are those which 
themselves represent nodes in the encoded graph.<   So:

        <soap:Envelope soapEnc:id="X">


is incoherent and is disallowed.   So is:

                <soap:Header soapEnc:id="Y">

The envelope is not a meaningful graph node.  Neither is the markup that 
starts header sections:    Yet, if what you want is XPointers into a SOAP 
envelope, then you do want to be able to do something like:

                <soap:Header xml:id="Y">

so you can make an XPointer to the header element labeled with "Y".  As I 
recall, there was not much careful consideration on the assignment of the 
type for soapEnc:id.  It seemed generally like an ID, and we claimed it to 
be, but this discussion suggests to me that we made a bit of a mistake.

So, if you agree with this line of reasoning, soapEnc:id is not an 
existence proof (or disproof) for the temptation to have specifications 
type ID attributesby fiat.  (Well, we were tempted, but I claim now that 
our reasoning was poor.)

Noah Mendelsohn                              Voice: 1-617-693-4036
IBM Corporation                                Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142

Received on Thursday, 30 January 2003 21:31:59 UTC