- From: John Boyer <boyerj@ca.ibm.com>
- Date: Tue, 15 Dec 2009 10:40:46 -0800
- To: "Klotz, Leigh" <Leigh.Klotz@xerox.com>
- Cc: public-forms@w3.org, www-forms-editor@w3.org
- Message-ID: <OF6144BA1F.D3557660-ON8825768D.0065458F-8825768D.00669517@ca.ibm.com>
Hi Leigh, Check out the bottom of your email, in the P.S. You indicate that we added the value attribute to output/mediatype so that you could use a mediatype stored in instance data, e.g. from an upload control. What I'm saying is look more closely at that and you will see that this is *not* why the value attribute is on output/mediatype. In fact, this is why the single node binding (e.g. ref attribute) is on output/mediatype. Look closer at the schema for upload. You see that upload/mediatype has a single node binding but *not* a value. It doesn't even make sense to have a value attribute on upload/mediatype because information has to travel from the upload control to the instance data, whereas the value attribute is only useful for one way communication from instance data to a form control. The upload single node binding will put a mediatype into a single node of instance data, and the most natural and consistent way for an output/mediatype to consume that information would be to use its single node binding, not a value attribute. I quite agree with your table below that every other place where the value attribute exists, we also allow text content. But we're talking about a schema change either way, and so my point is that if nobody can figure out how the value attribute got attached to output/mediatype, then the actual point of inconsistency looks to be the fact that the value attribute is attached to output/mediatype. If you remove the value attribute, then you also remove the need for textual content in the output/mediatype element. Then, given the above, the question might arise whether the value attribute plus the usual text content setting are needed in case one wants to set the mediatype to a literal string. As you pointed out below, having the value attribute is usually associated with also having element text content available as a convenient alternate way of setting a literal. This is the location in the argument where I put forward the output/@mediatype attribute as being available. In other words, we shouldn't compel the addition of the value attribute in order to get at the text content method of setting a literal because we already have a way to set a literal. So if a value attribute is needed, then why? I don't see a reason. At which point, I think that since we would need to modify the schema and produce an erratum anyway, why wouldn't we just remove the value attribute? Thanks, John M. Boyer, Ph.D. STSM, Interactive Documents and Web 2.0 Applications Chair, W3C Forms Working Group Workplace, Portal and Collaboration Software IBM Victoria Software Lab E-Mail: boyerj@ca.ibm.com Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer Blog RSS feed: http://www.ibm.com/developerworks/blogs/rss/JohnBoyer?flavor=rssdw From: "Klotz, Leigh" <Leigh.Klotz@xerox.com> To: John Boyer/CanWest/IBM@IBMCA Cc: <public-forms@w3.org>, <www-forms-editor@w3.org> Date: 12/11/2009 09:45 AM Subject: RE: XForms 1.1: Why is output/mediatype text content not allowed? Every other place where we have an element like this with a value attribute, text content is also allowed. And most of them have attribute versions as well, so it's not because there's a output/@mediatype that we don't specify the behavior of output/mediatype/text(). Here's a comparison table: submission/method "The method to be used by the submission can be specified with either the value attribute or the string content of the method element." submission/header/name "The header entry name may be given by the string content of the name element, or by the result of the value attribute." submission/header/value "The header entry value may be given by the string content of the value element, or by the result of the value attribute. " dispatch/name "The name element can provide the event name with either its string content or the value attribute. " dispatch/targetid "The targetid element can provide an IDREF for the event target with either its string content or the value attribute. " dispatch/target (deprecated but allowed with same content as dispatch/targetid) dispatch/delay "The delay element can provide the delay with either its string content or the value attribute. " setfocus/control " The control element can provide the desired element identifier with either its string content or the value attribute. " toggle/case "The case element can provide the identity of a case with either its string content or the value attribute. " (item|itemset)/value "3. the inline content of the value element (when neither the single node binding nor the value attribute are expressed)." Only one is different: output/mediatype "If the binding attributes are not used, the value attribute must be used instead to specify the desired media type rendition." We can use a pattern to express this in the schema (and in fact have to a first approximation of correctness) but for output/mediatype, it's incorrect because it's different from the others. So I'd recommend that we make output/mediatype be the same as the others with regard to #PCDATA content and its processing. Leigh. BTW, the value attribute was added so it can use the mediatype specified in the instance, for example if you have a recently uploaded file from the upload control. From: John Boyer [mailto:boyerj@ca.ibm.com] Sent: Friday, December 11, 2009 9:18 AM To: Klotz, Leigh Cc: public-forms@w3.org; www-forms-editor@w3.org Subject: Re: XForms 1.1: Why is output/mediatype text content not allowed? It started as being the same mediatype element as is used with the upload element, and then the value attribute was added for some reason that I don't know/recall (so, I hope it wasn't me who asked for it). The upload mediatype element cannot use a value attribute because the element is only needed when the author wants to store in data the mediatype of the uploaded content. I can't think of a technical reason not to remove the value attribute from output's mediatype element for consistency. Note that the output element has a mediatype attribute that would provide exactly the same encoding as would a mediatype element's text content (were it allowed by the schema), and it would be easier to use for encoding a static string than would the child element. John M. Boyer, Ph.D. STSM, Interactive Documents and Web 2.0 Applications Chair, W3C Forms Working Group Workplace, Portal and Collaboration Software IBM Victoria Software Lab E-Mail: boyerj@ca.ibm.com Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer Blog RSS feed: http://www.ibm.com/developerworks/blogs/rss/JohnBoyer?flavor=rssdw From: "Klotz, Leigh" <Leigh.Klotz@XEROX.COM> To: <public-forms@w3.org>, <www-forms-editor@w3.org> Date: 12/11/2009 09:03 AM Subject: XForms 1.1: Why is output/mediatype text content not allowed? Here's the spec text for output/mediatype element: 8.1.5.1 The mediatype Element (for output) Binding attributes on author-optional element mediatype specify the location in the instance of the string that indicates the desired media type rendition for the parent output. If the binding attributes are not used, the value attribute must be used instead to specify the desired media type rendition. Why does it not allow text content? <output ref="foo"><mediatype>image/*</mediatype></output> It's hard justify this restriction because it's different from other SNB elements with value, which do support inline content. Removing this restriction would allow for more re-use of types in the schemas, and better author familiarity with our rules. Leigh,
Received on Tuesday, 15 December 2009 18:41:32 UTC