Adriano, this isn't so much a bug as unsupported function.

DataFactory::generateInterface() is not part of the spec (I believe) and was
an old experiment in supporting static SDOs. As far as I am aware the code
has never been tested. I'm pretty sure I'd removed it before but it looks
like it's still in there!

Cheers,

On 31/05/07, Adriano Crestani <[EMAIL PROTECTED]> wrote:

I used the DataFactory::generateInterface() and I got the following code:

...
DataObjectList& Config::getRelationship //missing parameters definition
{
   return the_object->getList("Relationship");
}
...

It is not generating the parameters definition of any function that
returns
a DataObjectList&. Bellow is the code I use to generate the code above:


commonj::sdo::DataFactoryPtr dataFactory =
commonj::sdo::DataFactory::getDataFactory();
commonj::sdo::XSDHelperPtr xsdh =
commonj::sdo::HelperProvider::getXSDHelper(dataFactory);
xsdh->defineFile("config.xsd");
dataFactory->generateInterface("DataFactoryImpl", "DataFactoryImpl");

And here is the config.xsd:

<xsd:schema
  xmlns:config="apache.das.rdb"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
  targetNamespace="apache.das.rdb.config"
  elementFormDefault="qualified">

  <xsd:element name="Config" type="Config"/>

  <xsd:complexType name="Config">
     <xsd:all>
       <xsd:element maxOccurs="unbounded" minOccurs="0" name="Table"
type="Table"/>
       <xsd:element maxOccurs="unbounded" minOccurs="0"
name="Relationship"
type="Relationship"/>
     </xsd:all>
     <xsd:attribute name="uri" type="xsd:string"/>
  </xsd:complexType>

  <xsd:complexType name="Relationship">
     <xsd:all>
        <xsd:element maxOccurs="unbounded" minOccurs="1" name="KeyPair"
type="KeyPair"/>
     </xsd:all>
     <xsd:attribute name="name" type="xsd:string"/>
     <xsd:attribute name="primaryKeyTable" type="xsd:string"
use="required"/>
     <xsd:attribute name="foreignKeyTable" type="xsd:string"
use="required"/>
     <xsd:attribute name="many" type="xsd:boolean" default="true"/>
  </xsd:complexType>

  <xsd:complexType name="Table">
     <xsd:all>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="Column"
type="Column"/>
     </xsd:all>
     <xsd:attribute name="tableName" type="xsd:string" use="required"/>
     <xsd:attribute name="typeName" type="xsd:string"/>
  </xsd:complexType>

  <xsd:complexType name="KeyPair">
     <xsd:attribute name="primaryKeyColumn" type="xsd:string"
use="required"/>
     <xsd:attribute name="foreignKeyColumn" type="xsd:string"
use="required"/>
  </xsd:complexType>

  <xsd:complexType name="Column">
     <xsd:attribute name="columnName" type="xsd:string" use="required"/>
   <xsd:attribute name="sqlType" type="xsd:string" use="required"/>
     <xsd:attribute name="propertyName" type="xsd:string"/>
     <xsd:attribute name="primaryKey" type="xsd:boolean" default="false"/>
  </xsd:complexType>

</xsd:schema>

Am I committing some mistake or it's really a bug?

Adriano Crestani




--
Pete

Reply via email to