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: NEW ISSUE: Name and Alias descriptions and rules are inconsistent andincorrect.


Target: Core Spec CD03 rev-3

Description: The definitions of name and alias for type and property have several errors
1) There is a normative statement about duplicate property aliases but not duplicate type aliases.
2) There are duplicate definitions of property name
3) Section 4.4.3 duplicates information in sections 4.4.2. and 4.5 and adds no additional information.
4) The first definition of property name incorrectly states that duplicate result in undefined behavior.
5) There are unnecessary wording inconsistencies between section 4.4.2 and 4.5.
6) Type redefinition should be described as implementation independent not undefined.

Proposal: (change marks are relative to the target draft)

4.4.2        Type Contents

A Type will always have:

· Name - A String that identifies the Type within the HelperContext and URI. Names areis unique among the Types that belong to the same URI in the same HelperContext.  Defining a Type with duplicate type name or aliases results in undefined behavior. the same name but a different definition than an existing Type will be handled in an implementation dependent manner. A type name corresponds to the rules for an XML Schema NCName, see [Schema1]

·  URI - The logical URI of a package or a target namespace, depending upon your perspective.

· Boolean fields indicating if the type is open, abstract, sequenced, or a data type.

A Type can have:

· Properties - a list of Property objects defined by this Type. Types corresponding to simple data types define no properties.

· Aliases - Strings containing additional names. Alias Namesalternative names that are unique within a HelperContext and URI. Duplicates in the names or aliases of types results in undefined behavior.An SDO implementation MUST raise an error if defining a Type would result in a duplicate alias or an alias would duplicate the name of an existing Type. [COR04040201] All methods that operate on a Type by name also accept alias names. For example, a Type might be assigned an alias name for the domains it is used in: an XML Schema name "PurchaseOrderType", a Java name "PurchaseOrder" and a database table name "PRCHORDR".  

·Instance properties – open content metadata extensions attached to the Type instance.

· Base types – a list of base Types. All the properties declared on the base types are also inherited by the current Type and DataObjects of this Type are substitutable for DataObjects of any of the base Types.

· Key type - the Type of values that are used to uniquely identify instances of this Type.

4.4.3        Name Uniqueness

Within a single HelperContext, the combination of a URI and a Type name or alias name uniquely identifies the Type. Other HelperContexts potentially have different (and conflicting) definitions for Types having the same URI and name.

Property names and Property alias names are all unique within a Type and any base Types.

4.5        Property

A DataObject is made up of Property values.

A Property has:

·Name - A String that is unique amongidentifies the Propertiesy ofwithin the containing Type.  Defining a Property with a duplicate name or aliases results in undefined behaviorDuplicate property names are possible within a Type, see section 4.1.10 for details.  A property name corresponds to the rules for an XML Schema NCName, see [Schema1]

·Name - a String that is unique among the Properties of the containing Type. An SDO implementation MUST raise an error if defining a Property would result in a duplicate name or the name would duplicate an alias of an existing Property. [COR04050001]

·Type - the Type of this Property. A Property whose Type is for DataObjects is sometimes called a reference; otherwise it is called an attribute.

·Containment - whether the property is a containment property.  A property with containment true is called a containment property.

·Many - whether the property is single-valued or many-valued.

·ReadOnly - whether it is allowed to modify the property through the DataObject or the generated API.

·Alias names - alternative names that are unique within the Type.  An SDO implementation MUST raise an error if defining a Property would result in a duplicate alias or an alias would duplicate the name of an existing Property. [COR04050002] All methods that operation on a Property name also accept alias names. A Property might be assigned an alias name for the domains it is used in, such as an XML Schema name "firstName", a Java name "first_name", and a database column name, "FRSTNAME".

· Default value.

· Nullable – whether the property can be set to null.

· Key – whether the property is a key property. A property with key true is called a key property.

· Instance properties – open content metadata extensions attached to the Property instance.

· Numeric index within the Property’s Type.

Bryan Aupperle, Ph.D.
STSM, WebSphere Enterprise Platform Software Solution Architect
WW Center of Excellence for Enterprise Systems & Banking Center of Excellence Application Integration Architect

Research Triangle Park,  NC
+1 919-254-7508 (T/L 444-7508)
Internet Address: aupperle@us.ibm.com



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