- From: T.V Raman <raman@google.com>
- Date: Fri, 25 Aug 2006 12:14:12 -0700
- To: Leigh.Klotz@xerox.com
- Cc: www-forms@w3.org, monterro2004@tiscali.co.uk, raman@google.com, boyerj@ca.ibm.com
Leigh, Thanks for putting this list together -- it gets us very close to being able to spec what one should be able to do using AVTs safely. I suspect of the ones you list, in the model, AVTs on submission will be the most useful -- but in the spirit of laisse faire -- I'd go with your suggestion and only explicitly cut AVTs out in places we know it's a problem. I think the "avoid double eval" rule of XSLT is the right thing here --- in some sense, attributes whose value is already interpreted as an XPath expression e.g. bind/ref in XForms, have already had an implicit "eval" applied to the attr-value that provides the XPath expression, so it's wise to rule out AVTs there --- double-eval == forces you to do everything at run time. On the UI side, I believe all the places where you list AVTs as being applicable will in fact turn out to be useful. Klotz, Leigh writes: > I think many implementations have AVT-like strings already, and we're > already getting experience with them outside of the XForms 1.1 > recommendation draft. > This message is an effort to herd them without going to ether extreme of > putting it into the WD today or "asking" the implementations to take > them out. > > I believe that XSLT 2.0 is a good place to start looking and personally > I'd like to encourage vendors to look there. > > Nesting: > Nesting is prohibited in XSLT 2.0, and I think the XForms vendors should > do the same. > > Quoting: > Another point related to nesting is quoting. > It appears that XSLT 2.0 does this with double braces; so you use "{{" > instead of "{" to quote them, not backslash or entity definitions (which > wouldn't work of course). > The main use case for quoting mentioned in Kay's book is regular > expressions, but as XForms doesn't have bind/@pattern anyway, that one > won't be encountered. > > bind attributes: > If vendors follow XSLT 2.0's rules, then there won't be any in bind > nodeset or calculate, because those are XPath expressions, and they > aren't allowed there. > I don't know if the vendors who have implemented AVT or AVT-like > constructs already agree on this point, but now would be a good time to > speak up. > > So, if we apply Kay's description of XSLT 2.0's rules, here's the > attributes from the recently-posted XForms 1.1 Schema that I find make > the first and second cut. > Second cut applies the first rule (i.e., attributes must be explicltly > listed in the spec) and is noted after the attribute. > > First cut: XForms 1.1 attributes that aren't XPath or IDREF > Second cut: attributes that appear problematic for structral reasons, a > criterion mention in Kay's book and in John's message as well. > Third cut: Ones I'm not sure about; this is just the repeat attributes, > which I don't understand anyway. > > I'm sure we can whittle this list down more if necesssary and still have > something valuable. > > - model/@functions [cut] > - model/@schema > - submission/@action > - submission/@method > - submission/@version [XSLT allows it on output attributes and these > attributes are based on XSLT output] > - submission/@indent > - submission/@encoding > - submission/@omit-xml-declaration > - submission/@cdata-section-elements > - submission/@replace > - submission/@separator > - submission/@includenamespaceprefixes > - submission/@mediatype > - bind/@type [cut] > - bind/@p3ptype [cut] > - xf:*/@src (not quote * but I mean everywhere it's used) > - xf:*/@appearance > - xf:*/@inputmode <mailto:i/@inputmode> > - xf:*/@incremental <mailto:t/@incremental> > - upload/@mediatype > - select1/@selection > - select/@selection > - repeat/@start > - repeat/@end > - repeat/@step > - @ev:event [cut] > - @ev:phase [cut] > - @ev:propagate [cut] > - (other ev:event attributes are IDREF and are cut anyway) > - dispatch/@name > - dispatch/@bubbles > - dispatch/@cancelable > - load/@resource > - load/@show > - insert/@position > - message/@level > - */@xf:repeat-startindex [cut?] > - */@xf:repeat-number [cut?] > - repeat/@startindex > - repeat/@number > - case/@selected > > > Leigh. > > > > > ________________________________ > > From: John Boyer [mailto:boyerj@ca.ibm.com] > Sent: Friday, August 25, 2006 10:47 AM > To: Klotz, Leigh > Cc: Francisco Monteiro; T.V Raman; www-forms@w3.org; > www-forms-request@w3.org > Subject: RE: url params et al > > > > That's good. One of the questions I felt we needed someone to research > before going with AVTs was the question of iteration, i.e. if the result > contains braces, do you reevaluate? Seems like one could create all > kinds of Lisp-like constructs if so, but despite that was a minefield of > complexity I was hoping we could avoid. Based on not even being able to > nest them, I would say that iteration is out. > > That still leaves lots of process questions regarding their general > availability. We do need experience over time with the feature because > the common use cases are unlikely to break (which explains why "no one > seems to be having a problem with them"). Aside from the spec work we > would need in the form of schema changes, it would be very helpful to > have an explanation of why AVTs would pose no problem when use in the > attributes of a bind element, like nodeset or calculate, for example. > Would they be problematic when used in single node binding, nodeset > binding attributes, and the special attributes of each element? > > A good example would be upload with a filename child element. If upload > or filename ref contains an AVT that is dependent somehow on a change > that would be made by the other element, , what happens? > > Based on these, I'm sure there are issues that must be worked out > through full analysis of the language that may take a while to come up > otherwise. It may not take tons of time to do the analysis, we just > need someone to do it because it's not really a feature but rather an > enhancement to pretty much all the features of the language. > > John M. Boyer, Ph.D. > Senior Product Architect/Research Scientist > Co-Chair, W3C XForms Working Group > Workplace, Portal and Collaboration Software > IBM Victoria Software Lab > E-Mail: boyerj@ca.ibm.com http://www.ibm.com/software/ > > Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer > > > > > > "Klotz, Leigh" <Leigh.Klotz@xerox.com> > Sent by: www-forms-request@w3.org > > 08/25/2006 09:42 AM > > To > "T.V Raman" <raman@google.com> > cc > <www-forms@w3.org>, "Francisco Monteiro" <monterro2004@tiscali.co.uk> > Subject > RE: url params et al > > > > > > > > I looked at XSLT 2.0 in Michael Kay's book, and the the decision critera > for where AVTs work in XSLT 2.0. > As I remember it, the decision critera were as follows: > - attributes must be specifically identified > - must not be of type IDREF > - must not not be XPath expressions > > For the full text, which is about a page, please see ISBN: 0-7645-6909-0 > > Also, rather than using a first-nodeset rule, they use concatenation > with a single space between, though if you set compatibility mode to > XSLT 1.0, they use a single node. > > AVTs cannot be nested, but Kay's book gives an example using concat of > how to achieve certain desired effects. > > There also appears to be some hair associated with call-template, as > Kay's Saxon processor provides a saxon:allow-avt attribute as an > extension. > (Reference page http://saxon.sourceforge.net/saxon7.3/changes.html). > > > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> > <HTML><HEAD> > <META http-equiv=Content-Type content="text/html; charset=us-ascii"> > <META content="MSHTML 6.00.2900.2963" name=GENERATOR></HEAD> > <BODY> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>I think many implementations have AVT-like strings already, > and we're already getting experience with them outside of the XForms 1.1 > recommendation draft.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>This message is an effort to herd them without going to > ether extreme of putting it into the WD today or "asking" the > implementations to take them out.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>I believe that XSLT 2.0 is a good place to start looking > and personally I'd like to encourage vendors to look there.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>Nesting:</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>Nesting is prohibited in XSLT 2.0, and I think the XForms > vendors should do the same.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>Quoting:</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>Another point related to nesting </FONT></SPAN>is > quoting.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>It appears that XSLT 2.0 does this with double braces; so > you use "{{" instead of "{" to quote them, not backslash or entity definitions > (which wouldn't work of course).</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>The main use case for quoting mentioned in Kay's book is > regular expressions, but as XForms doesn't have <A > href="mailto:bind/@pattern">bind/@pattern</A> anyway, that one won't be > encountered.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>bind attributes:</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>If vendors follow XSLT 2.0's rules, then there won't be any > in bind nodeset or calculate, because those are XPath expressions, and they > aren't allowed there.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>I don't know if the vendors who have implemented AVT or > AVT-like constructs already agree on this point, but now would be a good time to > speak up.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>So, if we apply Kay's description of XSLT 2.0's rules, > here's the attributes from the recently-posted XForms 1.1 Schema that I find > make the first and second cut.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>Second cut applies the first rule (i.e., attributes must be > explicltly listed in the spec) and is noted after the > attribute.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>First cut: XForms 1.1 attributes that aren't XPath or > IDREF</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>Second cut: attributes that appear problematic for > structral reasons, a criterion mention in Kay's book and in John's message as > well.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>Third cut: Ones I'm not sure about; this is just the repeat > attributes, which I don't understand anyway.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>I'm sure we can whittle this list down more if > necesssary and still have something valuable.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:model/@functions">model/@functions</A> [cut]</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:model/@schema">model/@schema</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:submission/@action">submission/@action</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:submission/@method">submission/@method</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:submission/@version">submission/@version</A> [XSLT allows it on > output attributes and these attributes are based on XSLT > output]</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:submission/@indent">submission/@indent</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:submission/@encoding">submission/@encoding</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:submission/@omit-xml-declaration">submission/@omit-xml-declaration</A> > </FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:submission/@cdata-section-elements">submission/@cdata-section-elements</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:submission/@replace">submission/@replace</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:submission/@separator">submission/@separator</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:submission/@includenamespaceprefixes">submission/@includenamespaceprefixes</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:submission/@mediatype">submission/@mediatype</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A href="mailto:bind/@type">bind/@type</A> > [cut]</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A href="mailto:bind/@p3ptype">bind/@p3ptype</A> > [cut]</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- xf:*/@src (not quote * but I mean everywhere it's > used)</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- xf:*/@appearance </FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:i/@inputmode">xf:*/@inputmode</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- xf:*/<A > href="mailto:t/@incremental">@incremental</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:upload/@mediatype">upload/@mediatype</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:select1/@selection">select1/@selection</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:select/@selection">select/@selection</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:repeat/@start">repeat/@start</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:repeat/@end">repeat/@end</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:repeat/@step">repeat/@step</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- @ev:event [cut]</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- @ev:phase [cut]</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- @ev:propagate [cut]</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- (other ev:event attributes are IDREF and are cut > anyway)</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:dispatch/@name">dispatch/@name</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:dispatch/@bubbles">dispatch/@bubbles</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:dispatch/@cancelable">dispatch/@cancelable</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:load/@resource">load/@resource</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:load/@show">load/@show</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:insert/@position">insert/@position</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:message/@level">message/@level</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:*/@xf:repeat-startindex">*/@xf:repeat-startindex</A> [cut?]</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:*/@xf:repeat-number">*/@xf:repeat-number</A> [cut?]</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:repeat/@startindex">repeat/@startindex</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:repeat/@number">repeat/@number</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>- <A > href="mailto:case/@selected">case/@selected</A></FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2>Leigh.</FONT></SPAN></DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006></SPAN><SPAN > class=108154817-25082006></SPAN><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV> > <DIV dir=ltr align=left><SPAN class=108154817-25082006><FONT face=Arial > color=#0000ff size=2></FONT></SPAN> </DIV><BR> > <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left> > <HR tabIndex=-1> > <FONT face=Tahoma size=2><B>From:</B> John Boyer [mailto:boyerj@ca.ibm.com] > <BR><B>Sent:</B> Friday, August 25, 2006 10:47 AM<BR><B>To:</B> Klotz, > Leigh<BR><B>Cc:</B> Francisco Monteiro; T.V Raman; www-forms@w3.org; > www-forms-request@w3.org<BR><B>Subject:</B> RE: url params et > al<BR></FONT><BR></DIV> > <DIV></DIV><BR><FONT face=sans-serif size=2>That's good. One of the questions I > felt we needed someone to research before going with AVTs was the question of > iteration, i.e. if the result contains braces, do you reevaluate? Seems > like one could create all kinds of Lisp-like constructs if so, but despite that > was a minefield of complexity I was hoping we could avoid. Based on not > even being able to nest them, I would say that iteration is out.</FONT> > <BR><BR><FONT face=sans-serif size=2>That still leaves lots of process questions > regarding their general availability. We do need experience over time with > the feature because the common use cases are unlikely to break (which explains > why "no one seems to be having a problem with them"). Aside from the spec > work we would need in the form of schema changes, it would be very helpful to > have an explanation of why AVTs would pose no problem when use in the attributes > of a bind element, like nodeset or calculate, for example. Would they be > problematic when used in single node binding, nodeset binding attributes, and > the special attributes of each element? </FONT> <BR><BR><FONT > face=sans-serif size=2>A good example would be upload with a filename child > element. If upload or filename ref contains an AVT that is dependent > somehow on a change that would be made by the other element, , what happens? > </FONT> <BR><BR><FONT face=sans-serif size=2>Based on these, I'm sure > there are issues that must be worked out through full analysis of the language > that may take a while to come up otherwise. It may not take tons of time > to do the analysis, we just need someone to do it because it's not really a > feature but rather an enhancement to pretty much all the features of the > language.</FONT> <BR><BR><FONT face=sans-serif size=2>John M. Boyer, > Ph.D.<BR>Senior Product Architect/Research Scientist<BR>Co-Chair, W3C XForms > Working Group<BR>Workplace, Portal and Collaboration Software<BR>IBM Victoria > Software Lab<BR>E-Mail: boyerj@ca.ibm.com > http://www.ibm.com/software/<BR><BR>Blog: > http://www.ibm.com/developerworks/blogs/page/JohnBoyer<BR><BR></FONT><BR><BR><BR> > <TABLE width="100%"> > <TBODY> > <TR vAlign=top> > <TD width="40%"><FONT face=sans-serif size=1><B>"Klotz, Leigh" > <Leigh.Klotz@xerox.com></B> </FONT><BR><FONT face=sans-serif > size=1>Sent by: www-forms-request@w3.org</FONT> > <P><FONT face=sans-serif size=1>08/25/2006 09:42 AM</FONT> </P> > <TD width="59%"> > <TABLE width="100%"> > <TBODY> > <TR vAlign=top> > <TD> > <DIV align=right><FONT face=sans-serif size=1>To</FONT></DIV> > <TD><FONT face=sans-serif size=1>"T.V Raman" > <raman@google.com></FONT> > <TR vAlign=top> > <TD> > <DIV align=right><FONT face=sans-serif size=1>cc</FONT></DIV> > <TD><FONT face=sans-serif size=1><www-forms@w3.org>, > "Francisco Monteiro" <monterro2004@tiscali.co.uk></FONT> > <TR vAlign=top> > <TD> > <DIV align=right><FONT face=sans-serif size=1>Subject</FONT></DIV> > <TD><FONT face=sans-serif size=1>RE: url params et > al</FONT></TR></TBODY></TABLE><BR> > <TABLE> > <TBODY> > <TR vAlign=top> > <TD> > <TD></TR></TBODY></TABLE><BR></TR></TBODY></TABLE><BR><BR><BR><TT><FONT > size=2><BR>I looked at XSLT 2.0 in Michael Kay's book, and the the decision > critera<BR>for where AVTs work in XSLT 2.0.<BR>As I remember it, the decision > critera were as follows:<BR>- attributes must be specifically identified<BR>- > must not be of type IDREF<BR>- must not not be XPath expressions<BR><BR>For the > full text, which is about a page, please see ISBN: 0-7645-6909-0<BR><BR>Also, > rather than using a first-nodeset rule, they use concatenation<BR>with a single > space between, though if you set compatibility mode to<BR>XSLT 1.0, they use a > single node. <BR><BR>AVTs cannot be nested, but Kay's book gives an > example using concat of<BR>how to achieve certain desired effects.<BR><BR>There > also appears to be some hair associated with call-template, as<BR>Kay's Saxon > processor provides a saxon:allow-avt attribute as an<BR>extension.<BR>(Reference > page > http://saxon.sourceforge.net/saxon7.3/changes.html).<BR><BR><BR></FONT></TT><BR></BODY></HTML> -- Best Regards, --raman Title: Research Scientist Email: raman@google.com WWW: http://emacspeak.sf.net/raman/ GTalk: raman@google.com, tv.raman.tv@gmail.com PGP: http://emacspeak.sf.net/raman/raman-almaden.asc Google: tv+raman
Received on Friday, 25 August 2006 19:15:14 UTC