- From: <bugzilla@wiggum.w3.org>
- Date: Thu, 06 Dec 2007 17:42:10 +0000
- To: public-sml@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=4675 ------- Comment #19 from sandygao@ca.ibm.com 2007-12-06 17:42 ------- There are a few consequences we need to be aware of, if we require that all non-null references in IF documents MUST use the URI scheme. 1. It may not be easy for producers to satisfy this requirement (Kirk's comment "That seems to be calling on the SML-IF Producer to do the impossible." [1]) If the producer understand scheme(s) used in the SML model, then it's possible to perform this using John's algorithm [2]. It may be a big performance burden though. But in case when the producer is presented with a model using schemes it doesn't understand, then it's impossible for it to add the correct <sml:uri> elements. 2. Requiring modification to the embedded document could be dangerous. This could affect signatures on the embedded documents. This could also invalidate the embedded documents. (Consider the case where the schema says my reference element must only contain an instance of <my:uri>.) 3. It's also very difficult to achieve if documents are included by reference. If the producer is handed an URL for the document to be referenced, does it have to modify the document that that URL, or make a copy of that document and expose the new URL? (How to determine whether the new URL is accessible by the consumer?) 4. It discourages usage of other useful schemes Currently the URI scheme uses a subset of XPath 1.0. What if people want to experiment with a bigger (or smaller) subset, or start using XPath 2.0? Different vendors could agree on a new scheme and start using it before it's adopted by the next version of the spec. Do we want to clearly disallow that kind of behavior? Base on these, I think I'm not convinced that specifying only 1 level of conformance is the right decision. On the other hand, I do see the value of inter-op and the desire to have inter-op for conforming documents. Maybe a compromise could be to still define 2 levels, but instead of calling them level 1 vs. 2, they can be given names that reflect the degree of inter-op implied by these levels. (Again, very bad at coming up with names.)
Received on Thursday, 6 December 2007 17:42:19 UTC