See also: IRC log
Pratul: Vijay was interested in this. it's already optional; proposal to change from Second Draft o LC.
RESOLUTION: So agreed.
Background information: http://lists.w3.org/Archives/Public/public-sml/2007Aug/0053.html
Valentina's proposal: http://lists.w3.org/Archives/Public/public-sml/2007Aug/0087.html
Kirk: in section 2, may help if
more explicit connection was made between the 3 bullets and the
conclusion.
... section 3: breaking changes allowed in newer versions using
the same namespace?
SG/MSM: yes, up to the schema author.
Pratul: section 3.2: why need different schemas from different versions in the same IF?
MSM: imagine I have loose-html schema and strict-html schema.
Pratul: how is it handled now by schema?
MSM: that's why schema allows many resolution strategies. the entity who asks for validation selects which schema to use.
Pratul: why the same namespace?
MSM: for XHTML, it originally had
3 namespaces. turned out to be a disaster and had to change to
using 1 namespace.
... question about 4.1. maybe IF should be self-complete. that
is, all schema documents are always included.
John: later on, we suggest that we define an inter-op case. which is only guaranteed if all schema docs are included.
Pratul: 4.3 disagree, may have to update instance docs in smlif instance eg to translate scheme contents.
John: true that some impls do this, but does not have to be true in general. this section was really pointing out that we cannot control whether or not the model def documents make use of xs:include, import, redefine, and whether or not schema location is coded on them.'
MSM: lazy schema assembly is a strange thing to have here.
Kumar: if you add a new schema to an SML model, which already has a conflicting schema, what happens?
MSM: that depends on your product. database systems exhibit different behaviors. some tolerate multiple schema with same namespace; some don't.
Ginny: the incomplete set: the IF may be complete leaving the producer; it may then be changed by the consumer to be incomplete.
<ginny> A producer can create a complete set but if the consumer does reference a schema outside the set
<MSM> [In the current prose, the definition of completeness seems to depend on schema processor policy for acquiring components; in that case, the sender's processor and the receiver's processor might provide different answers. But I assume that's a glitch of some kind.]
John: open question: whether we need an explicit assert by the producer about whether the IF is in the complete set.
<ginny> I would say if the SML-IF instance can be processed/validated without referencing a non-included schema, then it is complete -- regardless of what the consumer does about referencing schemas.
MSM: 2 possibilities. 1 is to
define a policy; after applying it a consumer still needs to
load docs outside of IF, then it's incomplete.
... 2 is define closure of include/redefine/import to determine
whether it's complete.
... we don't want as a goal is to make it possible to use
existing schema processors to be used as-is.
<MSM> [other things being equal, allowing the use of off the shelf processors would be good -- but I don't think we want to reject anything that fails to allow it.]
John: It is necessary for a producer to declaratively distinguish between these two cases, since it is not always possible to distinguish based on the content alone. For example, XML Schema allows xs:include��s schema location attribute's value to not resolve, although the value is required. This can be done by introducing a "complete" attribute on the <smlif:definitions> element to indicate whether this SML-IF instance includes all necessary definition documents.
When this attribute is specified with an actual value "true", then for the instance to be valid, its schema definition documents and instance documents can only refer to either built-in components or components from definition documents included in the instance.
Ginny: if producer produces "complete" IF; it should have all schema binding specified to achive interop (e.g. use binding in preference over schema locations)
Sandy: yes. when "complete" is true, a policy must be enforced by consumers to guarantee inter-op. even when "complete" is not true, we may still want to require the same binding rule. (e.g. use schema docs in IF before seeking out)
MSM: question about "complete". if i have 3 elements A, B, C; i have components for A and B, but not for C. can i mark this IF complete?
Sandy: yes. and it implies that the consumer is not allowed to look for a schema doc outside the IF for C.
Kumar: schema allows different behavior in terms of schema composition; why does SML need to define a specific approach?
John: xml schema is a general purpose language; sml-if needs to guarantee interop.
Kumar: i want to use existing schema processors.
MSM: argument and analogy that we can't and shouldn't expect that *any* conforming schema processor can be used as-is in sml validator. (involving c language specification and schema processor that exposes no psvi properties.)
John: this is specifically about interchange. need to make sure different consumers process IF instances in the same way.
MSM: for a schema processor that ignores schema locations but takes a list of schema documents to build a schema, then i can use it to implement the "synthetic" schema approach desribed in the proposal.
Kirk: 3rd paragraph in 6.1 "... with schema locations pointing to schema documents from the namespace-to-schema-document mapping."
Prutal: 4th paragraph in 6.1. required to attempt to resolve <include/redefine>. what happens if if fails?
MSM: not an error. you must try,
but ok if it fails.
... about 6.2.2, consistency question. imagine schema doc S has
def-level ns1->T; T has def-level ns2->S1 (same tns as
S). OK?
Sandy: the idea is to load both S and S1 (trust everybody); conflicts result in errors.
Ginny: need aliases for include/redefine etc. as well as schema binding.
MSM: observes that we can ignore
include schemaLocation, or always point to the root document
for that namespace.
... this avoids honoring schemaLocation.
Sandy: redefine can't be handled using this strategy; so we might as well handle include and redefine in the same way.
John: last paragraph of 6.2.3, does it apply to all schema binding options?
Valentina/Sandy: yes
Kumar: for "explicit binding", do we *always* need a catalog specified in the IF?
Valentina: not always. if the default (namespace matching) works, then no explicit override is needed.
Kumar: how does the producer know which schema documents should be used to validate each instance, so it can calculate the set of bindings necessary?
Valentina: producer has knowledge of data
Kumar: it's the conflicting case
where this gets interesting
... when the model inst doc using one version of a schema doc
for which other versions exist in the store, did part of the
"add new MID" process specify which schema doc of the two
should be used?
Pratul: shouldn't this be specified in SML, and not SML-IF?
Sandy: the reason it's here is
because IF needs guaranteed interop, so we not only need to
require processors to conform to schema, but also specify
additional rules to achive interop.
... but for SML, schema processors can do whatever they want;
and schema already handles this case (multiple versions in same
model).
Pratul: we need to answer first whether we allow conflicting schema docs in the same SML model. if not, then this can be greatly simplified.
MSM: similar question. should SML/SML-IF allow conflicting schema docs?
John: need to put different CMDBs in the same SML model; each CMDB may have its own schemas.
Pratul: if the new version doesn't breaking existing instance, should be ok to keep only one version.
MSM: hard to maintain both
backward and forward compatibility
... what does SML currently say. is conflicting schema docs
supposed to be supported?
Sandy: I think yes. SML is any set of XML documents; and schema knows how to handle multiple-version-same-ns.
MSM: producer supports conflicting schema docs; send it in IF, to a consumer that doesn't support it, the consumer can't correctly understand the IF. a problem?
John: no. the same as IF having reference schemes not recognized by the consumer. no guarantee that all consumers can understand everything in an IF instance.
Kumar: in an SML model, there is a schema doc and many instances; later on, a conflicting schema doc is added. what happens?
Pratul: no defined in our specs. up to your processor.
John: possible options: reject, keep both, replace, treat as an instance doc, ... bottom line: anything; SML doesn't specify it.
Kumar: are we required to support it (conflicting schema docs)?
Sandy: as an SML processor and producer, you are not required to support it. But as a consumer, if an IF contains conflicting schema docs, you need to understand. but it's up to you what to do with it. e.g. you may choose to only store one schema in the model and ignore the other(s).
Pratul: or we can, in SML-IF, to say if a consumer doesn't support it, then it can ignore additional versions in the IF.
Kumar/Pratul: back to the question of whether we need to support this in SML at all.
Sandy: we had the CMDB case John mentioned earlier. And given we are making SML a general purpose validation language, we need to consider other cases. from my experience, WPS and SDO need the capability to handle multiple versions of the same schema at the same time.
John: eclipse tools, validation is explicit UI action, not done automatically all the time. then it's possible to have half-ready schemas.
<scribe> ACTION: Sandy to provide more detailed scenario description about handling multiple versions at the same time. [recorded in http://www.w3.org/2007/08/28-sml-minutes.html#action03]
<trackbot-ng> Created ACTION-119 - Provide more detailed scenario description about handling multiple versions at the same time. [on Sandy Gao - due 2007-09-04].