Strings, QNames and videotape - or: many ways to skin a cat

All, as the last outstanding item before closing on the final V1 of WS-Agreement, we need to settle on the use of strings, QNames and NCNames for descriptive names and IDs that we use in the schema and spec. Right now, it is a merry mixture, following various trends in the past. We have a number of options to address the restrictions that should apply to unique identfiers and desriptive names: - Unique identifiers could be strings (no restriction), QNames (one can/must use namespaces to structure ids), or NCNames (no QName). There are pros and cons to all of them but the most likely candidates seem to be strings or QNames. I don't see implementation reasons for NCNames right now. - Descriptive names could be strings or we may force NCNames. I don't see the point of telling people how they would like to call their agreement etc. descriptively. If a users thinks a:b:c tells him or her what is meant who wants to object. So I strongly propose the first. Applying the above thoughts to the schema, we yield: - a schema where all ids are QNames and all descriptive names are strings: - a schema where all ids and names are strings: To decide what is an id and what is a descriptive name I strictly went by the name of the attribute, finishing with Id or not. This might not be correct. For example, ServiceName coul dreally be an ID. Then we should call it that way and make it whatever we decide. If we go with string ids, it doesn't matter. This point is to be concluded in tomorrow's phone call and then applied to the text of the spec in the following day or two. Heiko ----- Heiko Ludwig, Dr. rer. pol. IBM TJ Watson Research Center, PO Box 704, Yorktown, NY, 10598 hludwig@us.ibm.com, tel. +1 914 784 7160, mob. +1 646 675 8469 http://www.research.ibm.com/people/h/hludwig/

One comment, Heiko: I remember now that Globus developers have warned me that handling of QName simple typed attributes and elements in the Apache Axis stack is somewhat challenging. They requested the use of anyURI type instead, which has about the same level of namespace safety as QNames I think. I cannot remember the exact issue, but believe it has to do with the way the QNames are parsed and the order in which the namespace prefixes handled. :-( I think we should restrict our use of QNames to the explicit attribute and element tags we define, and not for use in field values. Particularly for places where we use the "ids" to correlate between fragments of Agreement documents, I think URIs which we treat opaquely are the way to go. I think equality matching for URIs is also well-defined and simple to program. I agree that descriptive fields, not used for correlation in our base protocol or agreement semantics, should just be string types. karl -- Karl Czajkowski karlcz@univa.com
participants (2)
-
Heiko Ludwig
-
Karl Czajkowski