Hello,

I'm having issues generating static SDOs from my schema. My schema can
be found here:

http://www.oasis-open.org/committees/download.php/23876/CL1_Schema.zip

and here:

http://www.w3.org/2000/09/xmldsig

I generate my classes using IBM's JDK 1.4.2 with the following commands:

set javaExe=C:\ibmsdk1.4.2_sr4-1\bin\java
set output=.
set schemaLocation=..\schema\sdd-20070504_49

set 
sdo_cp=lib\org.eclipse.emf.codegen_2.2.2.v200702131851.jar;lib\org.eclipse.emf.codegen.ecore_2.2.2.v200702131851.jar;lib\org.eclipse.emf.common_2.2.1.v200702131851.jar;lib\org.eclipse.emf.ecore_2.2.2.v200702131851.jar;lib\org.eclipse.emf.ecore.change_2.2.1.v200702131851.jar;lib\org.eclipse.emf.ecore.xmi_2.2.2.v200702131851.jar;lib\sdo-api-r2.1-1.0-incubating-SNAPSHOT.jar;lib\tuscany-sdo-impl-1.0-incubating-SNAPSHOT.jar;lib\tuscany-sdo-tools-1.0-incubating-SNAPSHOT.jar;lib\org.eclipse.xsd_2.2.2.v200702131851.jar
set options=-cp %sdo_cp%
org.apache.tuscany.sdo.generate.XSD2JavaGenerator -arrayAccessors
-targetDirectory %output%

%javaExe% %options% "%schemaLocation%\wd-sdd-common-1.0.xsd"
%javaExe% %options% "%schemaLocation%\wd-sdd-deploymentDescriptor-1.0.xsd"
%javaExe% %options% "%schemaLocation%\wd-sdd-packageDescriptor-1.0.xsd"
%javaExe% %options% "%schemaLocation%\xmldsig-core-schema.xsd"

I've built the Tuscany SDO libraries from the 5/6 code in subversion
with IBM's 1.4.2 JDK.

Ok, with that out of the way, here are the problems I'm seeing:

1) Load the generated classes into Eclipse and you'll see this error.
identityTypeType isn't defined. In
oasis.names.tc.sdd._1._0.package_.descriptor.impl.DescriptorFactoryImpl
the following line:

addSuperType(packageIdentityTypeType, identityTypeType);

seems like it should be:

addSuperType(packageIdentityTypeType, theCommonPackageImpl.getIdentityType());

Let me know if that is correct.


2) There are a few 2-dimensional arrays being created incorrectly as a
part of xmldsig-core-schema.xsd. For example:

protected static final byte[][] X509SKI_EEMPTY_ARRAY = new byte[] [0];

should probably be:

protected static final byte[][] X509SKI_EEMPTY_ARRAY = new byte[0] [0];

Let me know if that sounds correct as well.

3) This problem just appeared in the past week. I think it may have to
do with issue 1223. After generating the classes from
xmldsig-core-schema.xsd, I get problems with the code generated around
the base64 types. I get errors stating the methods from
XMLTypeFactoryImpl don't exist. Perhaps it's my version of EMF? I've
used 2.2.2, 2.2.3, and 2.3.0, but none solved my problem.

4) This is a runtime issue, but it may have to do with issue 1 above.
This was last tested with the Tuscany SDO code built on 4/27.

I'm getting the following error:

java.lang.ClassCastException: java.lang.String
        at 
org.apache.tuscany.sdo.util.resource.SDOXMLResourceImpl$SDOXMLSaveImpl.saveElementFeatureMap(SDOXMLResourceImpl.java:753)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1352)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2459)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1033)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:919)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedSingle(XMLSaveImpl.java:2166)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1381)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2459)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1033)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:919)
        at 
org.apache.tuscany.sdo.util.resource.SDOXMLResourceImpl$SDOXMLSaveImpl.saveElementFeatureMap(SDOXMLResourceImpl.java:771)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1352)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.writeTopObject(XMLSaveImpl.java:624)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:549)
        at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:233)
        at 
org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:203)
        at 
org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:993)
        at 
org.apache.tuscany.sdo.helper.XMLDocumentImpl.save(XMLDocumentImpl.java:184)
        at 
org.apache.tuscany.sdo.helper.XMLHelperImpl.save(XMLHelperImpl.java:115)
        at 
org.apache.tuscany.sdo.helper.XMLHelperImpl.save(XMLHelperImpl.java:110)
        at SimpleStaticTest.descriptorTest(SimpleStaticTest.java:47)
        at SimpleStaticTest.packageDescriptorTest(SimpleStaticTest.java:59)
        at SimpleStaticTest.main(SimpleStaticTest.java:69)

When reading in this file:

<?xml version="1.0" encoding="UTF-8"?>
<sdd-pd:PackageDescriptor descriptorID="0F000F000F000F000F000F000F000F01"
                         descriptorLanguageBundle="com.ibm.res.translations"
                         lastModified="2001-12-31T12:00:00"
                         schemaVersion="1.0"
                         xmlns:ds="http://www.w3.org/2000/09/xmldsig#";
                         xmlns:sdd-common="urn:oasis:names:tc:SDD:1:0:common"

xmlns:sdd-pd="urn:oasis:names:tc:SDD:1:0:packageDescriptor"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";

xsi:schemaLocation="urn:oasis:names:tc:SDD:1:0:packageDescriptor
../../schema/sdd-20070403_36/wd-sdd-packageDescriptor-1.0.xsd

http://www.w3.org/2000/09/xmldsig#
http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd

urn:oasis:names:tc:SDD:1:0:common
../../schema/sdd-20070403_36/wd-sdd-common-1.0.xsd ">
 <PackageIdentity packageType="baseInstall" softwareID="5786-345">
   <Name translationKey="name">Shopping</Name>
   <Description translationKey="desc">Shopping Cart Package</Description>
   <ShortDescription translationKey="short_desc">Shopping
Cart</ShortDescription>
   <Version>4.5</Version>
 </PackageIdentity>
 <Files>
   <File id="earFile" length="0" pathname="./ShoppingCart45.ear"
purpose="content">
        <ds:DigestMethod Algorithm="SHA-1"></ds:DigestMethod>
        <ds:DigestValue></ds:DigestValue>
   </File>
 </Files>
</sdd-pd:PackageDescriptor>

with this code:

       HelperContext context = SDOUtil.createHelperContext();
         
oasis.names.tc.sdd._1._0.deployment.descriptor.DescriptorFactory.INSTANCE.register(context);
       
oasis.names.tc.sdd._1._0.package_.descriptor.DescriptorFactory.INSTANCE.register(context);
       oasis.names.tc.sdd._1._0.common.CommonFactory.INSTANCE.register(context);
       org.w3._2000._09.xmldsig.XmldsigFactory.INSTANCE.register(context);

       InputStream in = new File(shoppingCart-pd-4.5.xml).toURL().openStream();
       XMLDocument doc = context.getXMLHelper().load(in);
       in.close();

       DataObject descriptor = doc.getRootObject();

       context.getXMLHelper().save(descriptor,
doc.getRootElementURI(), doc.getRootElementName(), System.out);

It has to do with the softwareID attribute in the PackageIdentity
element in the xml file above. For some reason, the code is getting a
String returned when it's expecting a List. When I remove the
softwareID attribute, it runs fine. I think this is related to issue 1
above.

Please let me know if these problems can be resolved. Issue 3 and 4
are the two problems we're unable to work around currently.

Thanks,
-Chris

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to