[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: Fw: [sca-assembly] Action item 2010-12-07-3, ASSEMBLY-239
I prefer Peter's - body.<language> is consistent with other specific (language)bindings in sca. > -----Original Message----- > From: Anish Karmarkar > Sent: 05 April 2011 20:53 > To: sca-assembly@lists.oasis-open.org > Subject: Re: Fw: [sca-assembly] Action item 2010-12-07-3, ASSEMBLY-239 > > On 4/5/2011 10:12 AM, Peter Niblett wrote: > > Simplified version of the two options, leaving out some of the details. > > For more background, please refer back along the email thread. > > > > 0. Current spec version (for reference) > > > > * The two filter element names are <eventType.sca> and <body.xpath1> > > * The event type filter is represented in the schema as an abstract > > Global Element called <eventType> heading a substitution group, > > along with a a concrete <eventType.sca> Global Element Declaration. > > * The body filter is represented in the schema as a concrete Global > > Element Declaration called <body.xpath1>. There is no substitution > > group or abstract element declaration. > > > > 1. Eric's proposal > > > > * The filter elements become <eventTypeSet> and <matchBodyXPath1> > > * The filter elements are declared in the schema as local elements > > contained in the Filters complex type definition, so in effect > > they become > > > > filters/eventTypeSet and > > filters/matchBodyXPath1 > > * The ProducerContract complex type is changed so that the reference > > to the eventType abstract element is replaced with a new local > > element called eventTypeSet > > > > > > 2. Peter's proposal > > > > * The filter elements become <eventTypes.sca> and <bodyXPath1> > > (minor updates to the spelling) > > I think you meant body.XPath1 (with the ".") > > -Anish > -- > > > * The schema representation of <eventTypes> stays the same as today > > (except for the addition of the extra s) > > * In the schema we introduce an abstract <body> element heading a > > substitution group, with a concrete <body.XPath1> element declared > > as a substitution element for it. This brings it into line with > > <eventTypes>. > > > > > > Peter Niblett > > IBM Senior Technical Staff Member > > Member of the IBM Academy of Technology > > +44 1962 815055 > > +44 7825 657662 (mobile) > > > > > > > > > > From: Peter Niblett/UK/IBM@IBMGB > > To: Eric Johnson <eric@tibco.com> > > Cc: sca-assembly@lists.oasis-open.org > > Date: 08/02/2011 11:30 > > Subject: Re: Fw: [sca-assembly] Action item 2010-12-07-3, ASSEMBLY-239 > > ------------------------------------------------------------------------ > > > > > > > > Eric's proposal includes moving sections 9.2.1.1 to become a new 3.1.4.1 > > and 9.2.1.2 to become a new 5.6.1. I don't have this in my proposal, > > since it isn't directly relevant to the subject of this issue. > > > > I think the reason for doing this is that when you put this element ( > > <eventTypes> or <eventTypeSet> whichever we decide to call it) on a > > Producer it isn't acting as a filter. So strictly speaking sections > > 9.2.1.1 and 9.2.1.2. don't belong in chapter 9, since this chapter is > > about filters. The problem I can see with this is that the material in > > these sections refers to the structure of the element which is discussed > > in the intro section of 9.2 (which is still in the filters chapter) and > > in order to understand these sections you are going to have to flip > > forward to 9.2 anyway. To do this thoroughly, we should move the > > <eventTypes> or <eventTypeSet> discussion and the current 9.2.1.1 and > > 9.2.1.2 to chapter 8. Then section 9.2 can refer back to chapter 8 when > > it describes the use of <eventTypes> or <eventTypeSet> as a filter, and > > the 3.1.4 and 5.6 references can refer forward to it. > > > > My proposal should also have noted that the change of name of > > <eventType> to <eventTypes> also affects 3.1.4 and 5.6 and the schema at > > line 5598 (I am using PDF line numbers from the WD03 draft at [1]). > > > > So in case anyone is confused by all this, the material differences > > between the proposals (apart from moving sections of the spec around) are > > > > 1. The element names: > > > > <eventTypeSet> vs <eventTypes.sca> > > <matchBodyXPath1> vs <body.XPath1> > > > > 2. The schema representation > > > > In Eric's proposal, the two elements are declared as local elements in > > the Filters type definition, so in effect they become > > > > filters/eventTypeSet and > > filters/matchBodyXPath1 > > > > In my proposal <eventTypes> and <body> are both abstract elements > > heading substitution groups, with concrete <eventTypes.sca> and > > <body.XPath1> elements declared as substitution elements for them. > > > > Eric doesn't mention this, but his proposal will I think also need a > > change to the schema at 5568 to declare another local element (also > > called eventTypeSet ? ) for the Producer to use. > > > > [1] > > _http://www.oasis-open.org/apps/org/workgroup/sca- > assembly/download.php/40972/sca-assembly-1.2-spec-wd03_clean.doc_ > > > > > > Peter Niblett > > IBM Senior Technical Staff Member > > Member of the IBM Academy of Technology > > +44 1962 815055 > > +44 7825 657662 (mobile) > > > > > > > > > > From: Eric Johnson <eric@tibco.com> > > To: Peter Niblett/UK/IBM@IBMGB > > Cc: sca-assembly@lists.oasis-open.org > > Date: 08/02/2011 01:00 > > Subject: Re: Fw: [sca-assembly] Action item 2010-12-07-3, ASSEMBLY-239 > > ------------------------------------------------------------------------ > > > > > > > > My counter-proposal: > > > > Section 3.1.4 (Component type producer): > > line 852: drop reference to "See section Use of <eventType> on Producer". > > > > Section 3.1.4.1: Gets the current contents of 9.2.1.1 > > > > Section 4.5 (Component producer). > > line 1587: replace reference to refer to new location at 3.1.4.1 > > > > Section 5.6 (Composite producer). > > line 2820: delete reference to Use of <eventType> on Producer. > > > > Section 5.6.1: Gets the current contents of 9.2.1.2 > > > > Section 9.1: > > > > Snippet 9-1 (the pseudo-schema): > > Change "eventType.sca" to "eventTypeSet". Change "body.xpath1" to > > "matchBodyXPath1". > > > > Section 9.2: > > p. 105, line 4176: Replace occurrence of "eventType.sca" with > > "eventTypeSet". > > > > Section 9.2.1: > > -- deleted -- > > > > Section 9.2.1.1: (moves to become 3.1.4.1) > > (NOTE: This section has a reference to @typeNames that is undefined!) > > > > Section 9.2.1.2 moves to become 5.6.1) > > > > Section 9.2.2 > > > > Replace references to "eventType.sca" with "eventTypeSet". > > > > Section 9.3: > > line 4260: replace "xpath1" with "XPath 1" > > > > Section 9.3.1: > > line 4262, 4263: replace "body.xpath1" with "matchBodyXPath1" > > > > Change the definition of Context Node as Peter describes below. > > > > Appendix A.2 > > > > line 5944-5: change to (makes these two definitions local!) > > <element name="eventTypeSet" type="sca:eventType.sca"/> > > <element name="matchBodyXPath1" type="xsd:string" /> > > > > line 5968: delete (definition of body.xpath1) > > > > One minor note about Peter's items below - he appears to have different > > line numbers for schema changes than the WD 03 PDF. > > > > -Eric. > > > > On 2/7/11 5:35 AM, Peter Niblett wrote: > > I have an action item to propose changes to the spec, assuming we took > > my preferred answers to these questions. > > > > 1. The pseudo schema shown in snippet 9.1 changes from this: > > > > <filters> > > <eventType.sca qnames="list of xs:QName"? namespaces="list of > > xs:anyURI"? />* > > <body.xpath1> xs:string </body.xpath1>* > > <any>* > > </filters> ? > > > > to this > > > > <filters> > > <eventType*s*.sca qnames="list of xs:QName"? namespaces="list of > > xs:anyURI"? />* > > <body.XPath1> xs:string </body.XPath1>* > > <any>* > > </filters> ? > > > > a) eventType has become eventTypes, since it can specify more than one > > type. > > > > b) xpath1 has become XPath1, since that's the received way of spelling it. > > > > 2. Change eventType to eventTypes everywhere that it appears in section > > 9.2 (there are many places) > > > > 3. Change body.xpath1 to body.XPath1 in section 9.3 > > > > 4. In section 9.3.1 change the definition of Context Node from > > > > . Context Node: the root element of the document being searched based > > upon the subject. In this case (the Business Data Subject) it is the > > root element of the event business data. > > > > to > > > > . Context Node: the root element of the business data portion of the > event. > > > > (the old words were left over from a much earlier version and should > > have been deleted) > > > > 5. Change the Filter type definition in the sca-core.xsd (line 5959) from > > > > <complexType name="Filter"> > > <sequence> > > <choice minOccurs="0" maxOccurs="unbounded"> > > <element ref="sca:eventType" /> > > <element ref="sca:body.xpath1" /> > > </choice> > > <any namespace="##other" processContents="lax" minOccurs="0" > > maxOccurs="unbounded"/> > > </sequence> > > <anyAttribute namespace="##other" processContents="lax"/> > > </complexType> > > > > to > > > > <complexType name="Filter"> > > <sequence> > > <choice minOccurs="0" maxOccurs="unbounded"> > > <element ref="sca:eventTypes" /> > > <element ref="sca:body" /> > > </choice> > > <any namespace="##other" processContents="lax" minOccurs="0" > > maxOccurs="unbounded"/> > > </sequence> > > <anyAttribute namespace="##other" processContents="lax"/> > > </complexType> > > > > and change lines 5971 to 5986 (the end of the core schema) from > > > > <element name="eventType" abstract="true"/> > > > > <element name="eventType.sca" type=sca:EventType.sca" > > substitutionGroup="eventType"/> > > > > <complexType name="EventType.sca"> > > <sequence> > > <any namespace="##other" processContents="lax" minOccurs="0" > > maxOccurs="unbounded"/> > > </sequence> > > <attribute name="qnames" type="sca:listOfQNames" /> > > <attribute name="namespaces" type="sca:listOfAnyURIs" /> > > <anyAttribute namespace="##other" processContents="lax" /> > > </complexType> > > > > <element name="body.xpath1" type="string" /> > > > > to > > > > <element name="eventTypes" abstract="true"/> > > > > <element name="eventTypes.sca" type=sca:EventTypes.sca" > > substitutionGroup="eventTypes"/> > > > > <complexType name="EventTypes.sca"> > > <sequence> > > <any namespace="##other" processContents="lax" minOccurs="0" > > maxOccurs="unbounded"/> > > </sequence> > > <attribute name="qnames" type="sca:listOfQNames" /> > > <attribute name="namespaces" type="sca:listOfAnyURIs" /> > > <anyAttribute namespace="##other" processContents="lax" /> > > </complexType> > > > > <element name="body" abstract="true"/> > > > > <element name="body.XPath1" type="string" > > substitutionGroup="body"/> > > > > > > a) eventType has become eventTypes > > > > b) .xpath1 has become .XPath1 > > > > c) substitution groups used for body as well as for eventTypes > > > > 6. (optional) Move the declaration of <body.XPath1>, <eventTypes.sca> > > and the EventTypes.sca type definition into a new sca-filters.xsd, for > > consistency with other substitution element declarations. > > > > > > Peter Niblett > > IBM Senior Technical Staff Member > > Member of the IBM Academy of Technology > > +44 1962 815055 > > +44 7825 657662 (mobile) > > > > ----- Forwarded by Peter Niblett/UK/IBM on 07/02/2011 11:50 ----- > > > > From: Peter Niblett/UK/IBM > > To: Eric Johnson _<eric@tibco.com>_ <mailto:eric@tibco.com> > > Cc: Anish Karmarkar _<Anish.Karmarkar@oracle.com>_ > > <mailto:Anish.Karmarkar@oracle.com>, _sca-assembly@lists.oasis-open.org_ > > <mailto:sca-assembly@lists.oasis-open.org> > > Date: 18/01/2011 15:55 > > Subject: Re: [sca-assembly] Action item 2010-12-07-3, ASSEMBLY-239 > > > > ------------------------------------------------------------------------ > > > > > > Hi Eric > > > > I think we have identified our points of difference, and we should see > > what the others think. Here's a quick summary of the main two , using > > the numbers from my previous email. > > > > > > 2. Should we declare the two filters that we have (EventType and Body) > > using substitution groups or not? > > > > Peter. Yes, it provides an extensibility mechanism to allow other > > filters to be added without the need to change the core schema > > Eric. No - they don't satisfy any of the conditions that apply to other > > places where substitution groups are needed: > > > > * some base structure that was actually required to be shared (not > > true in this case) > > * more than one substitution actually defined by the SCA family of > > specs (not true in this case) > > * a place where a single instance of an element was appropriate > > (implementation.????), but vendor extensibility mattered (not true > > in this case) > > > > > > Also the chances of adding further filters without changing the core > > schema are ~ 0%. > > > > 4. Is it ok to use "." period in element names if there isn't a > > substitution group? > > > > Peter. Yes, it's a useful separator that distinguishes the part of the > > name that represents the concept (a body filter or an event type filter) > > from the language used to express it. It makes the SCDL clearer. Not > > many SCDL readers will look at the schema and know whether we are using > > substitution groups or not - and not all of them will understand what > > substitution groups are anyway. > > > > Eric. No, we have a convention that "." implies a substitution group, > > and we should stick to that. > > > > Regards > > > > Peter Niblett > > IBM Senior Technical Staff Member > > Member of the IBM Academy of Technology > > +44 1962 815055 > > +44 7825 657662 (mobile) > > > > > > > > > > From: Eric Johnson _<eric@tibco.com>_ <mailto:eric@tibco.com> > > To: Peter Niblett/UK/IBM@IBMGB > > Cc: Anish Karmarkar _<Anish.Karmarkar@oracle.com>_ > > <mailto:Anish.Karmarkar@oracle.com>, _sca-assembly@lists.oasis-open.org_ > > <mailto:sca-assembly@lists.oasis-open.org> > > Date: 17/01/2011 22:48 > > Subject: Re: [sca-assembly] Action item 2010-12-07-3, ASSEMBLY-239 > > ------------------------------------------------------------------------ > > > > > > > > Hi Peter, > > > > On 1/13/11 7:01 AM, Peter Niblett wrote: > > Thanks Eric > > > > I have put comment in line, but I'll summarise all the things that have > > come up in this discussion.. Some of these are going a bit beyond the > > original scope of this issue. > > > > 1. Remove the sentence that says "Context Node: the root element of the > > document being searched based upon the subject.". This is agreed. > > > > 2. Regardless of what they are called, how should we declare the two > > SCA-defined elements that can be appear in <filters> (we currently have > > one called eventType and one called body) > > > > a) As abstract substitution group head elements, with separate global > > elements to be substituted in ? > > > > b) As concrete global elements, referenced by the Filter complex type ? > > > > c) As elements defined locally in the Filter complex type ? > > > > At the moment we use approach a) for eventType and b) for body, and > > there seems to be no reason to handle them differently. > > > > I think you favour c) for both. I prefer a) for both, since I think > > there's some value in being able to add SCA-namespaced filters without > > having to change the sca core xsd file. I don't see a lot of value in > > b), unless there's some established SCDL convention that would encourage > > the use of global elements. > > > > > > As I said below, I think that using substitution groups here doesn't > > satisfy any of the reasons that they've been used elsewhere in the specs. > > > > If you have a concern that we've not captured the XPath2 use case, then > > by all means, let's add that element definition. I don't think this > > requires a substitution group. > > > > > > A subsidiary point here is that, if we use substitution groups then it > > would seem appropriate to move the substitution element declarations > > (i.e the concrete things that get substituted in) out of the core sca > > xsd file. At the moment all the substitution elements are outside the > > core schema with the exception of eventType.sca > > > > 3. Do we envisage adding additional SCA-namespaced filters, e.g. event > > Types specified by Java classes, or body filters specified in XPath 2.0? > > This isn't part of this issue, but has a bearing on point 2. > > > > > > Even if we do, what are the chances that we'll do so without *any* other > > changes to the core schema. My guess ~ 0%. > > > > > > 4. Is it ok to use "." period in element names in cases where there is > > no substitution group in the schema ? At the moment all occurrences of > > "." correspond to the use of substitution groups, except for > > <body.filter>. This question would become irrelevant if we were to > > choose to use substitution groups for body filters (I think everyone > > agrees that it's ok to use "." in that case). You feel strongly that "." > > should only be used when there's a substitution group. I think we should > > be able to use "." if it makes the SCDL clearer - not many SCDL readers > > will be looking at the schema. > > > > 5. The element name <eventType> is misleading, since it can point at > > multiple event types. I agree. > > > > 6. The element name <body.xpath1> has the following issues > > > > i) It contains a "." (see point 4) > > ii) The name is too generic to be used as a global element name > > iii) xpath should be XPath > > > > It seems to me we have four outcomes, depending on the answers to 2 and 4 > > > > A. Use Substitution Groups for both event type and body filters > > > > This means we would need to use "." in the names (as today) but we > > should generalize the body filter name to be <bodyConstraint.XPath1>. We > > should also move the substitution element declarations out of the core > > sca schema. > > > > B. Use local element declarations for the filters, and decide that it's > > ok to use ".". It would then be ok to call the body filter <body.XPath1> > > > > C. Use global element declarations for the filters, and decide that it's > > ok to use ".". As in A we would then change the body filter name to be > > <bodyConstraint.XPath1>. > > > > D. Use local of global declarations and decide that it's not ok to use > > ".". I think it would be better to have the XPath1 qualifier at the end, > > so the element name would be <bodyConstraintXPath1>. > > > > > > Works for me, but we should also make "elementType" a local element, and > > fix its name, as I suggested below, to "eventTypeSet". > > > > -Eric. > > > > > > Regards > > > > Peter Niblett > > IBM Senior Technical Staff Member > > Member of the IBM Academy of Technology > > +44 1962 815055 > > +44 7825 657662 (mobile) > > > > > > > > > > From: Eric Johnson _<eric@tibco.com>_ <mailto:eric@tibco.com> > > To: Peter Niblett/UK/IBM@IBMGB > > Cc: Anish Karmarkar _<Anish.Karmarkar@oracle.com>_ > > <mailto:Anish.Karmarkar@oracle.com>, _sca-assembly@lists.oasis-open.org_ > > <mailto:sca-assembly@lists.oasis-open.org> > > Date: 12/01/2011 22:00 > > Subject: Re: [sca-assembly] Action item 2010-12-07-3, ASSEMBLY-239 > > > > ------------------------------------------------------------------------ > > > > > > > > Hi Peter, > > > > Thanks for clarifying. I attempt to respond interleaved below to the > > points I think need further discussion. > > > > On 1/12/11 6:27 AM, Peter Niblett wrote: > > Hi Eric > > > > 2. I still think we should use a consistent syntax for both the Body and > > the EventType filters, so if the acceptability of the . is tied to the > > presence of the substitution group in the schema we should ask why > > there's a substitution group for eventType and not one for body filters. > > At the moment we only define one possible dialect for eventType and one > > for body, and it's not clear why there should be this distinction.. > > > > The reason that there is a substitution group for the EventType is that > > we wanted to allow the SCA defined filters to be extended to support > > multiple type systems for events. The <anyAttribute namespace="##other" > > processContents="lax" /> mechanism only allows extension by elements > > from a different namespace and is intended for vendor-specific things. > > So the only other way to extend the SCA spec in the future to have - for > > example - sca:eventType.java or sca:eventType.wsEventDescriptions is to > > change the definition of the Filter complex type to add these extra > > things into the <choice>. The precedent set in other parts of SCDL is to > > use substitution groups so that these additional things can be > > contributed to the SCA namespace without having to modify the > > definitions of the types that have already been defined. It seems to me > > that if you buy this argument, the case for doing the same thing for > > body (e.g. add XPath 2 support) is strong. > > > > Yeah, I don't buy it. In some hypothetical future version of SCA (1.3, > > 2.0?), we somehow expect to maintain a fully backwards compatible XML > > Schema? (Are you planning on working on SCA for another five to ten > years?) > > > > And even if we did maintain compatibility, what's the point? The > > semantics of additional type systems supported by the core spec mean > > that even if the schema is valid, no 1.2-level clients will support it. > > > > To me, this substitution group looks like future-proofing that won't > > even work. > > > > <pn> The thing that bothers me most here is the need for XPath 2 filter > > support. Including XPath 2 is a separate issue, but I would like to see > > us having a way in which it can be plugged in without having to redo the > > Assembly spec and the sca-core.xsd - and without having to use the > > xs:any which at present is only suitable for vendor-specific extensions. > > I don't hold a particular brief for the use of substitution groups, so I > > will see if anyone else wants to comment on this but I note that it is a > > mechanism that is used elsewhere..</pn> > > > > As to where we've used substitution groups elsewhere, we've done so when > > it made sense for a number of reasons: > > > > * some base structure that was actually required to be shared (not > > true in this case) > > * more than one substitution actually defined by the SCA family of > > specs (not true in this case) > > * a place where a single instance of an element was appropriate > > (implementation.????), but vendor extensibility mattered (not true > > in this case) > > > > <pn> We do have substitution groups where the head element doesn't > > define a structure (e.g. wireFormat and operationSelector). On the > > second point, I concede that there's only one eventType and one body > > dialect defined at present - but as I said I am thinking about XPath 2.0 > > here which would motivate a second body dialect. I have also heard > > discussion of defining event types in Java which would motivate a second > > event type dialect. . Your third point is really that we already have an > > extensibility mechanism. I would claim that that is intended to allow > > third parties to introduce different filter subjects and that there is > > some value in having third parties indicate that the new filter that > > they are introducing is in fact a kind of eventType filter or a kind of > > bodyFilter. I agree that this could be done with a naming convention > > though. > > > > There is another aspect of the existing substitution groups, and that is > > that the substitution elements are declared in their own xsd files, and > > not in the sca-core.xsd file. This emphasises their role as plugin > > extensions to the core and allows them to be added with changing the > > core schema - indeed in some cases the elements are described in a > > different spec, not the assembly spec at all. It does seem a bit strange > > that eventType.sca is declared in the core xsd. </pn> > > > > > > 3. I understand your logic about local versus global elements and the > > need for meaningful names for global elements because you can encounter > > them independently from their containing element(s). The reason these > > are global elements is of course tied in to the substitution group > > argument. > > > > Actually <eventType> also needs to be a global element because it is > > used in other contexts (e.g. on a Producer) as an event type identifier. > > It's only when it appears as a child of <filters> that it is used as a > > filter, so it is inappropriate to change it to be <eventTypeFilter>. > > This suggests a pattern where the GED name should reflect what the > > parameter means (in this case it is a type identifier but we are using a > > well-accepted convention of dropping the word Identifier) and the > > containing context dictates what it is used for. > > > > To me, you've underscored that we're overloading the use of a global > > element. Perhaps we should simply not do that? We've got a perfectly > > good XML Schema type defined here, so let's define a local definition > > (gasp!) that references the existing type. > > > > <pn>I guess it's a matter of taste whether you indicate a common > > semantic by using the same type or the same element name. I notice that > > there seems to be a lot of use of refs and GEDs in the rest of the core > > schema, I assumed that was a stylistic choice made when we started on > > the core schema,, but maybe it's just because a lot of the elements are > > substitution heads and so have to be global. </pn> > > > > Either that, or the "eventType" element should be changed to > > "eventTypeSet", as what it is properly doing is defining not a single > > type, but a set of event types. With that name, I think it fits in > > either context. > > > > <pn>Good point. Its name should reflect the fact that it can point at a > > plurality of event types. How about just calling it eventTypes ?</pn> > > > > Back to the quest for a more meaningful name for <body.xxx>. Putting > > Filter into the name is repetitious and also restricts the element to > > this particular use (ok, I know that that's the only use we currently > > have for it). How about something that suggests what it actually is - a > > constraint on the contents of the event body? Would <bodyConstraint.xxx> > > work, or would <dataConstraint.xxx> be better? > > Given that I don't think the substitution group is appropriate, I'm > > still very much against the "." (period). "bodyConstraintXPath1" works > > for me, but I think "xpath1BodyConstraint" reads more naturally. > > > > <pn>It's only an SCA convention that associates the "." with a > > substitution group. You could say that our convention is that "." is > > associated with an extension point - and it just happens that all the > > ones defined so far have been backed up with substitution groups in the > > schema. I think more people are going to see the element name than are > > going to look at the schema (and the set of people who understand > > substitution groups is going to be smaller still), so if it makes things > > clearer to use a "." in the name, we shouldn't get too hung up about the > > substitution group point. Do you have a dislike of "." for other reasons? > > I prefer the XPath1 going at the end, because that's where it goes in > > the names of the other elements that have qualifiers (i.e. the ones with > > a "." in like implementation.xxx that we aren't debating) </pn> > > > > > > -Eric. > > > > > > Regards > > > > Peter Niblett > > IBM Senior Technical Staff Member > > Member of the IBM Academy of Technology > > +44 1962 815055 > > +44 7825 657662 (mobile) > > > > > > > > > > From: Eric Johnson _<eric@tibco.com>_ <mailto:eric@tibco.com> > > To: Peter Niblett/UK/IBM@IBMGB > > Cc: Anish Karmarkar _<Anish.Karmarkar@oracle.com>_ > > <mailto:Anish.Karmarkar@oracle.com>, _sca-assembly@lists.oasis-open.org_ > > <mailto:sca-assembly@lists.oasis-open.org> > > Date: 11/01/2011 18:56 > > Subject: Re: [sca-assembly] Action item 2010-12-07-3, ASSEMBLY-239 > > ------------------------------------------------------------------------ > > > > > > > > A response: > > > > On 1/11/11 2:08 AM, Peter Niblett wrote: > > 2. The other part of the issue concerns the name of the event body > > filter. As I said in my email of Sept 22, there are three things that > > the filter syntax has to express. > > > > > > i) The type of data that the filter operates against (the subject) > > > > ii). The language used to express the filter (the dialect) > > > > iii). The filter expression itself. > > > > It is helpful to retain the separation of i) and ii), as it allows you > > to tell what the subject is, even if you don't recognise the dialect. If > > we just had a flat name I could define my own filter expression - say > > Peter_special_no_22 - and it would not be possible to tell what kind of > > filter it is. Also if you do a have a dialect used for more than one > > subject (e.g. XPath used for both body and metadata) you only have to > > define its syntax and semantics once. I actually prefer a syntax where > > the dialect is expressed as an attribute (that's what happens in > > WS-Notification and WS-Eventing), e.g. > > > > <body dialect="xpath1"> A/B </body> > > > > but I understand that the TC prefers an approach where we include the > > dialect as part of the element name, so I am ok with that, > > > > > > I actually would be OK with that approach as well. So I wouldn't assume > > the will of the TC on this point. I have done so, because I was not > > attending Assembly TC meetings when this element was first introduced, > > and nobody has stepped up to offer this alternative. But perhaps that > > was a mistake? > > > > 3. This is what we have in the current working draft > > > > <filters> > > <eventType.sca qnames="list of xs:QName"? namespaces="list of > > xs:anyURI"? />* > > <body.xpath1> xs:string </body.xpath1>* > > <any>* > > </filters> ? > > > > I agree with Anish that we don't need the word "filter" in the filter > > QName, since these elements are all children of the <filters> element. > > > > > > As I stated in my proposal, I actually think the other entry should be > > changed to "eventTypeFilter.sca". I think this is an odd place to start > > applying brevity to something represented in XML. If we're talking about > > global element definitions, then I think a fully spelled out name is > > appropriate. If we want to change the schema so that these elements are > > defined locally to the "filters" element, then I'd agree that we can > > drop the "filter" from the name. > > > > 4. I think it we should have a consistent appearance for the two filter > > names (and any others we may introduce in the future). Changing > > <body.xpath1> to <xpath1Body> or <bodyXpath1> makes the body filter > > syntax and the eventTye filter syntax inconsistent (in comparison with > > the consistent syntax we currently have). > > > > As I understand things, the issue now is that we cannot use a . in the > > body name, since the element isn't defined using a substitution group > > and everywhere else in SCA assembly a . implies the substitution group. > > This is indeed the case.. here is the current schema definition: > > > > > > <element name="filters" type="sca:Filter"/> > > <complexType name="Filter"> > > <sequence> > > <choice minOccurs="0" maxOccurs="unbounded"> > > <element ref="sca:eventType" /> > > <element ref="sca:body.xpath1" /> > > </choice> > > <any namespace="##other" processContents="lax" minOccurs="0" > > maxOccurs="unbounded"/> > > </sequence> > > <anyAttribute namespace="##other" processContents="lax"/> > > </complexType> > > > > <element name="eventType" abstract="true"/> > > > > <element name="eventType.sca" type=sca:EventType.sca" > > substitutionGroup="eventType"/> > > > > <complexType name="EventType.sca"> > > <sequence> > > <any namespace="##other" processContents="lax" minOccurs="0" > > maxOccurs="unbounded"/> > > </sequence> > > <attribute name="qnames" type="sca:listOfQNames" /> > > <attribute name="namespaces" type="sca:listOfAnyURIs" /> > > <anyAttribute namespace="##other" processContents="lax" /> > > </complexType> > > > > <element name="body.xpath1" type="string" /> > > > > As you can see that <eventType> is an abstract element with only one > > substitution group member defined (eventType.sca) but <body> is defined > > as a concrete element. > > > > > > Hmmm. I'd actually argue the other way around. The use of substitution > > group here is spurious. It is, quite simply the SCA defined eventType > > filter of event types. It's overspecified to allow eventType to be > > extended, because we don't *do* anything with that capability. > > > > If you don't like the standard filter the spec defines, just take > > advantage of the "<any namespace="##other" ..." declaration. > > > > I propose we keep the . in body filter - if we need any changes at all > > they are > > > > i) Update the schema so that we have an abstract element for the body > > filter, just like we do for the eventType filter. That would regularise > > the appearance of the . character in the name > > > > > > Why? > > > > ii) Capitalise the X and the P, i.e. <body.XPath1> since it is usually > > referred to as XPath, not xpath or xPath or Xpath. > > > > > > I hate to spend so much time on naming, but to summarize: > > a) Since it is defined as a global element "body.xpath1" should include > > the word filter in its name. We either do that, or we turn it into a > > local element. Same with "eventType.sca". > > b) Using substitution groups here is spurious. In the other places we've > > done that, there's been actual specification text about what those > > extensions are. Here, we have no such purpose, so we shouldn't do it. So > > "." shouldn't appear in the name, and we should probably eliminate the > > substitution group for eventType.sca, and just call it "eventTypeFilter". > > c) I'm OK with moving the "XPath1" portion of the meaning to an > > attribute, which could simplify this question by letting us call it > > "bodyFilter", which has the benefit of being intuitive. > > > > -Eric. > > > > Regards > > > > > > Peter Niblett > > IBM Senior Technical Staff Member > > Member of the IBM Academy of Technology > > +44 1962 815055 > > +44 7825 657662 (mobile) > > > > > > > > > > From: Anish Karmarkar _<Anish.Karmarkar@oracle.com>_ > > <mailto:Anish.Karmarkar@oracle.com> > > To: _sca-assembly@lists.oasis-open.org_ > > <mailto:sca-assembly@lists.oasis-open.org> > > Date: 21/12/2010 07:50 > > Subject: Re: [sca-assembly] Action item 2010-12-07-3, ASSEMBLY-239 > > > > ------------------------------------------------------------------------ > > > > > > > > Thanks for the detailed explanation for your choice. Two comments > > inlined below. > > > > -Anish > > -- > > > > On 12/20/2010 4:12 PM, Eric Johnson wrote: > > In the call from two weeks back, I think we had agreement about 1/2 of > > the proposed resolution to _ASSEMBLY-239_ > > <http://www.osoa.org/jira/browse/ASSEMBLY-239>. We had an issue, > > however, with the proposed name change - changing "body.xpath1" to > > "eventBodyFilter". > > > > My action item - to come up with alternate name proposals.* > > > > Question:* what to use as a separator? Choices: period ("."), underscore > > ("_"), or camelCase? Why care? > > > > Period used elsewhere to indicate a pattern of a base substitution > > group. Here such a substitution group is unnecessary, as the element > > already appears in a situation of explicit extensibility, where any > > element is allowed, rather than elements that extend a specific > > construct. Further, the situation does not require any base set of > > information that must be provided by the elements. > > > > Underscore is not used elsewhere. Introducing it here might be confusing > > or at least distracting. > > > > Conclusion: use camelCase pattern, which is used elsewhere. > > > > > > Seems like a reasonable choice to me.* > > > > Question:* What words do we need to include in the name of the element? > > Options: "body", "xpath1" (or variations), "event", "filter" > > > > For example: > > body xpath1 > > xpath1 filter > > body xpath1 filter > > body filter xpath1 > > filter body xpath1 (or, even more self-explanatory: "filter body with > > xpath1" > > event body filter xpath1 > > > > As per discussions, I understand a strong desire from some members of > > the TC that "xpath1" appear in the name of the element, to distinguish > > it from other possible languages for body filters. > > > > Putting both "event" and "filter" in, for the moment is mostly > > redundant, because "filter" only refers to events. If we only choose > > one, then should it be "event" or "filter"? Since "event" occurs in more > > places in the spec than "filter", I conclude that "filter" in the name > > connotes a more precise meaning than "event". > > > > Based on the above, comment on "event" vs. "filter", this suggests that > > we should change "eventType" to "typeFilter", as it carries more meaning > > (admittedly, at the cost of an additional character). > > > > Following the pattern of "typeFilter", then, it makes sense to use some > > variation of "bodyFilter". > > > > However, should it be "bodyFIlterXPath1", or "xpath1BodyFilter"? > > Inventing some variations of "typeFilter", I came up with > > "dynamicTypeFilter", "computedTypeFilter", and "randomTypeFilter". > > > > The most natural place for the qualifier seems to be at the front, so I > > conclude: > > > > "xpath1BodyFilter" > > > > This element (and all filter expressions) can occur only as a child of > > the <filter> element. So both 'filter' and 'event' are a little > > redundant. I have a very mild preference for 'bodyXpath1', but other > > combinations (including Eric's recommendation) are fine too. > > > > as my recommendation for the name of the element. > > > > -Eric. > > > > > > > > > > ------------------------------------------------------------------------ > > > > /Unless stated otherwise above: > > IBM United Kingdom Limited - Registered in England and Wales with number > > 741598. > > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 > 3AU/ > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > /Unless stated otherwise above: > > IBM United Kingdom Limited - Registered in England and Wales with number > > 741598. > > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 > 3AU/ > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > /Unless stated otherwise above: > > IBM United Kingdom Limited - Registered in England and Wales with number > > 741598. > > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 > 3AU/ > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > /Unless stated otherwise above: > > IBM United Kingdom Limited - Registered in England and Wales with number > > 741598. > > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 > 3AU/ > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > /Unless stated otherwise above: > > IBM United Kingdom Limited - Registered in England and Wales with number > > 741598. > > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 > 3AU/ > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > / > > / > > > > /Unless stated otherwise above: > > IBM United Kingdom Limited - Registered in England and Wales with number > > 741598. > > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 > 3AU/ > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > / > > / > > > > /Unless stated otherwise above: > > IBM United Kingdom Limited - Registered in England and Wales with number > > 741598. > > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 > 3AU/ > > > > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]