OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

[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


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/
>
>
>
>
>
>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]