Hi Ron, You asked me about this about a month ago, and here was my answer:
> SDO 2.1 has added a new method for this, Property.isNullable(). > Unfortunately we haven't implemented in yet in Tuscany (it > currently throws UnsupportedOperationException if you > call it). > The implementation plan is to add an EAnnotation on > EStructuralFeatures created in SDOXSDEcoreBuilder, to store the > nillable value, and then use that EAnnotation to implement the > new isNullable() method. > It's not on our high priority list but If you'd like to do it > and provide a patch, that would be most welcome. > Thanks, > Frank. So, if you'd like to help, we can get this finished very soon :-) Frank. Ron Gavlin <[EMAIL PROTECTED]> wrote on 03/06/2007 01:38:35 PM: > Hi Frank, > > Thanks for clearing this issue up for me. I appreciate it. > > Now that Tuscany has implemented this new SDO 2.1 design, it seems > pretty important to support Property.isNullable(). Is there a JIRA # > for this issue? Is it planned for M3? For us, the SDO 2.1 behavior > may prove problematic without it. > > Thanks again, > > - Ron > > ----- Original Message ---- > From: Frank Budinsky <[EMAIL PROTECTED]> > To: tuscany-user@ws.apache.org > Sent: Tuesday, March 6, 2007 12:14:38 PM > Subject: Re: SDO - XML Schema element with default attribute behaves > as if nillable="true" > > > Hi Ron, > > The serialization behavior is based on isSet() behavior, so you should be > concerned abou it :-) A property is serialized only if isSet() is true. > The SDO 2.1 design is that isSet() returns true if the property has been > set (period). Unlike EMF, it has nothing to do with the default value. So > if you set to null (valid or not), isSet will return true and you'll get > an element serialized and xsi.nil will be used to represent a null value. > We've already implemented this behavior in Tuscany. > > Frank. > > P.S. Another new feature in SDO 2.1 is Property.isNullable() to determine > whether or not null is a valid value for a property. We haven't > implemented this in Tuscany yet. > > > Ron Gavlin <[EMAIL PROTECTED]> wrote on 03/06/2007 11:56:22 AM: > > > Hi Frank, > > > > Thanks for the quick reply. > > > > I'm less concerned about the actual isSet() behavior and more > > concerned with 1. serialization and 2. the behavior of unset() vs. > > set(null). In M2, when nillable = "false", unset() and set(null) > > behave similarly in that both adhere to the same serialization > > semantics. OTOH, when nillable = "true", unset serializes as an > > absent element whereas set(null) serializes w/xsi:nil="true". The > > presence of a default attribute triggers the nillable = "true" > > serialization semantics. How is this supposed to work in SDO 2.1? > > How does it work currently in the Tuscany SVN head? How will it work > > in Tuscany M3? > > > > Thanks in advance. > > > > - Ron > > > > ----- Original Message ---- > > From: Frank Budinsky <[EMAIL PROTECTED]> > > To: tuscany-user@ws.apache.org > > Sent: Tuesday, March 6, 2007 11:39:23 AM > > Subject: Re: SDO - XML Schema element with default attribute behaves > > as if nillable="true" > > > > > > What specifically do you mean by: > > > > > makes the SDO runtime treat quantity as if the element also had the > > attribute, nillable="true". > > > > If you're referring to the behavior of isSet() after you call set(null), > > > then this is a feature inherited from EMF. If a property was a default > > value, the property becomes EMF-unsettable, so isSet() will always > return > > true after set(). The fact that null is not a legal value (since the > type > > is not nillable) is a validation issue. > > > > Note that in SDO 2.1, all features will behave this way - even the ones > > without default value. There was a clarification in semantics of isSet > in > > the 2.1 SDO spec, so this EMF-specific behavior will no longer apply. > > > > Frank > > > > Ron Gavlin <[EMAIL PROTECTED]> wrote on 03/06/2007 11:13:51 AM: > > > > > Greetings, > > > > > > I am using the M2 SDO release. Assume I have registered a schema > > > that includes the following snippet: > > > > > > ... > > > <xs:element name="item" maxOccurs="unbounded"> > > > <xs:complexType> > > > <xs:sequence> > > > <xs:element name="title" type="xs:string"/> > > > <xs:element name="note" type="xs:string" minOccurs="0"/> > > > <xs:element name="quantity" type="xs:nonNegativeInteger" > > > minoccurs="0" default="0" /> > > > <xs:element name="price" type="xs:decimal"/> > > > </xs:sequence> > > > </xs:complexType> > > > </xs:element> > > > ... > > > > > > It appears the presence of a default attribute on the "quantity" > > > element makes the SDO runtime treat quantity as if the element also > > > had the attribute, nillable="true". Is this a bug? If so, I'll be > > > happy to register a JIRA issue. Let me know. > > > > > > - Ron > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]