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

 


Help: OASIS Mailing Lists Help | MarkMail Help

sdo message

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


Subject: AW: Core Spec Review


More comments, continued from yesterday:

 

Section 4.10: 

I’m don’t think the example really adds anything here, and would prefer to remove it.

 

I believe the second to last paragraph contains an implicit compliance point that we need to make explicit.  That is, the earlier properties MUST hide the later ones.  This might be a good place to bring up the “xml” SDOPath scheme, eg, to handle the case where attribute names conflict with element names.  This obviously relates to the duplication of “Name” is section 4.5, about which both Rick and Bryan have commented.  I believe, however, that the duplication, and requirement to raise an exception is simply an editing mistake I made when I was applying the resolution about NCNames (SDO-173).  We had wordsmithed the Type.name property, and then said “the same constaints apply to Property.name.  So I simply cut-and-pasted the text, changing “Type” to “Property”.

 

Section 4.11

The term “current state” does not occur in the rest of the document, why do we spend a chapter describing it.

 

Section 4.3.3 – Title should be “Sequences and DataObjects”

 

Sections 4.4 and 4.5 generally:  I believe that these sections should really be folded into Chapter 5.

 

Section 4.5.4 – Read only Properties:  we say that attempts to set a read-only property “results in an error”.  This seems to imply a compliance point, that I’m relatively certain not everyone wants.  Or do we?  In any case, we either need a compliance point or to re-word.

 

 

Best Regards,

Ron

 

 

 

 

Von: Barack, Ron [mailto:ron.barack@sap.com]
Gesendet: Montag, 27. September 2010 15:14
An: Rick Barkhouse
Cc: sdo@lists.oasis-open.org
Betreff: [sdo] AW: Core Spec Review

 

Hi Everyone,

 

I’d like to add some changes here:

 

First, I think we should agree on when and whether “Type”, “Property” should be capitalized.  For instance, in the phrase “the type of a DataObject”, should “type” be capitalized or not? We are also not consistent in our use of many-valued and multi-valued.  Is there a difference here?  

 

Section 2.2

 

The text is talking about what SDO is trying to achieve, not laying out any requirements in the 2119 sense.   We should change “Requirements” here to “Goals”.

Section 2.2, point 2 talks mostly about generating static SDOs, which we’ve taken out of the spec.  I’d like to re-word it to focus on the use case for static SDO’s, and about the possibility of deriving metadata from them.

 

1.     Support for Static Data API. In cases where metadata is known at development time (for example, the XML Schema definition or the SQL relational schema is known), SDO supports the use of interfaces as a means of accessing Data Objects. A static API is usually easier to program against, since they allow the compiler to check type safety and the IDE’s to offer code completion.  When static data APIs are used, the dynamic data APIs are still available. In languages such as Java, the static can also be used to as a source of SDO metadata (see item 6, below).

While code-generation rules for static data APIs are outside the scope of this core SDO specification, it is the intent that SDO supports code-generated approaches for Data Objects.  Possible source from which static SDOs could be generated include:

-         Popular XML schema languages.

-         Relational database schemas with queries known at the time of code generation.

-         Web services, when the message is specified by an XML schema.

-         JCA connectors.

-         JMS message formats.

-         UML models

 

Just before section 4.1 starts, there’s  a description of the get<T> methods.  I think this text can be removed,  since the get<T> terminology is better described in section 4.1.3, on type conversion.  The last sentence here is also an implicit compliance point, which I’d like to take out.

 

Property values in SDO may be any of the following:

·         Boolean

·         Byte

·         Char

·         Double

·         Float

·         Integer

·         Long

·         Short

·         Bytes

·         DataObject

·         Date

·         String

·         Lists of any of the above

Individual language specifications might add additional types to this list. See section 4.1.3 for details on the type safe access of property values..

Note that unless an SDO API explicitly states that null is a legal value for a parameter, passing null is not allowed.

 

The last sentence in section 4.1

Which SDO APIs are used will vary based on the needs of the application.  For example, if XML is part of an application, then the XMLHelper is valuable, but otherwise might never be used.

Is pretty much obvious, and doesn’t really fit in a section called “DataObject”.  We should either remove it or move it someplace else.

 

Section 4.1.1:

Basic. A DataObject is similar to a class with a set of defined Properties.

 

Section 4.1.3:

There’s a section of the 2.1.1 spec that is missing here, and I’m not sure why.  I think maybe the text got lost when applying some other changes.  Here is the missing text:

In addition to these conversions, if a get<T>() method is invoked on a many-valued

property, then if the value is a List of length 1, then the item in the list is returned

(possibly after conversion); if the length is 0, null is returned, except when the

instanceClass of the property is a primitive Java class, as described in section

Determining whether a Property is Set. If a set<T> method is invoked on a many-valued

property, then the value is wrapped into a List of length 1 and then this List is set.

 

Note that when calling the primitive DataObject.set() methods, no automatic conversion

is performed. In this case, type conversion can be explicitly performed by calling

DataHelper.convert() before calling the set() method. For example:

 

dataObject.set(property, dataHelper.convert(property, value));

 

I’d like to move the first paragraph tot he next section, which focuses on multivalued properties.

 

Section 4.1.4:

 

The statement

The getList(property) accessor is especially convenient for many-valued properties. If property.many is true then set(property, value) and setList(property, value) require that “value” be a Collection and List respectively, as defined for the implementation language.

Doesn’t really say anything except what types Java expects.  I think we should replace this sentence with the missing paragraph from 4.1.3 (see previous change).

 

… more to come…

 

 

Ron

 

 

Von: Rick Barkhouse [mailto:rick.barkhouse@oracle.com]
Gesendet: Freitag, 24.
September 2010 22:38
An: Barack, Ron
Cc: sdo@lists.oasis-open.org
Betreff: Core Spec Review

 

Hi Ron,

I finished reviewing the first 4 chapters of the core spec and am attaching my edited version. 

One extra thing I had noticed, in section [ 4.5 Property ] we seem to have two definitions of the "name" attribute, I think the second one should be deleted?

--
Rick Barkhouse | Software Developer, EclipseLink | 613.288.4613
Oracle Development
45 O'Connor Street, Suite 400 | Ottawa, Ontario K1P 1A4



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