[ 
https://issues.apache.org/jira/browse/TUSCANY-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kelvin Goodson updated TUSCANY-1842:
------------------------------------

    Patch Info: [Patch Available]

Setting PAtach Available: Ron's suggestion gives us a quick workaround to be 
committed under this JIRA.  TUSCANY-1862 will provide the proper fix.

> IOException loading DataGraph containing a deleted dataObject with a property 
> whose type extends a complexType w/simple integer content
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TUSCANY-1842
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1842
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SDO Implementation
>    Affects Versions: Java-SDO-Next
>         Environment: Windows XP, Sun JDK 1.5.0_09
>            Reporter: Ron Gavlin
>            Priority: Critical
>             Fix For: Java-SDO-Next
>
>
> In the test method, testComplexTypeWithSimpleContentExtensionChangeSummary() 
> listed below, a DataGraph is created with a dataObject whose property type 
> extends a complexType with simple integer content. After the dataObject is 
> deleted, an attempt is made to save and load the DataGraph. While the 
> DataGraph is being loaded, an unsuccessful attempt is made to convert a 
> zero-length string into a BigInteger. 
> Any suggestions on how to best fix this are most welcome.
> Thanks,
> - Ron
> ==============================
> substitutionWithExtensionValues.xsd
> ============================== 
> <schema xmlns="http://www.w3.org/2001/XMLSchema";
>       targetNamespace="http://www.example.com/substitutionEV";
>       xmlns:sev="http://www.example.com/substitutionEV";>
>       <!--
>               Licensed to the Apache Software Foundation (ASF) under one
>               or more contributor license agreements.  See the NOTICE file
>               distributed with this work for additional information
>               regarding copyright ownership.  The ASF licenses this file
>               to you under the Apache License, Version 2.0 (the
>               "License"); you may not use this file except in compliance
>               with the License.  You may obtain a copy of the License at
>               
>               http://www.apache.org/licenses/LICENSE-2.0
>               
>               Unless required by applicable law or agreed to in writing,
>               software distributed under the License is distributed on an
>               "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>               KIND, either express or implied.  See the License for the
>               specific language governing permissions and limitations
>               under the License.    
>       -->
>       <element name="results" type="sev:ResultsType" />
>       <element name="result" type="sev:ResultType" />
>       <element name="myResult" type="sev:MyResultType"
>               substitutionGroup="sev:result" />
>       <complexType name="ResultsType">
>               <sequence>
>                       <element name="id" type="sev:IdType" />
>                       <element ref="sev:result" minOccurs="0"
>                               maxOccurs="unbounded" />
>                       <element name="comment" type="sev:CommentType" />
>               </sequence>
>       </complexType>
>       <complexType name="ResultType">
>               <sequence>
>                       <element name="id" type="sev:IdType" />
>                       <element name="name" type="string" />
>                       <element name="value" type="sev:ValueType" />
>               </sequence>
>       </complexType>
>       <complexType name="MyResultType">
>               <complexContent>
>                       <extension base="sev:ResultType" />
>               </complexContent>
>       </complexType>
>       <simpleType name="IdType">
>               <restriction base="sev:AsciiStringType">
>                       <maxLength value="32" />
>                       <pattern value="[0-9a-fA-F]*" />
>               </restriction>
>       </simpleType>
>       <simpleType name="AsciiStringType">
>               <restriction base="string">
>                       <pattern value="\p{IsBasicLatin}*" />
>               </restriction>
>       </simpleType>
>       <complexType name="ValueType">
>               <simpleContent>
>                       <extension base="sev:Integer32Bit" />
>               </simpleContent>
>       </complexType>
>       <complexType name="Integer32Bit">
>               <simpleContent>
>                       <restriction base="integer">
>                               <minInclusive value="0" />
>                               <maxInclusive value="4290000000" />
>                       </restriction>
>               </simpleContent>
>       </complexType>
>       
>       <complexType name="CommentType">
>               <simpleContent>
>                       <extension base="sev:AsciiStringType">
>                               <attribute name="language" use="optional">
>                                       <simpleType>
>                                               <restriction base="string">
>                                                       <enumeration 
> value="English" />
>                                                       <enumeration 
> value="French" />
>                                                       <enumeration 
> value="Spanish" />
>                                               </restriction>
>                                       </simpleType>
>                               </attribute>
>                       </extension>
>               </simpleContent>
>       </complexType>
>       <complexType name="MyCommentType">
>               <simpleContent>
>                       <restriction base="sev:CommentType">
>                               <minLength value="0" />
>                               <maxLength value="40" />
>                       </restriction>
>               </simpleContent>
>       </complexType>
>       <complexType name="StringBasedCommentType">
>               <simpleContent>
>                       <restriction base="string">
>                               <minLength value="0" />
>                               <maxLength value="40" />
>                       </restriction>
>               </simpleContent>
>       </complexType>
> </schema>
> ==============================
> substitutionWithExtensionValues2.xsd
> ==============================
> <schema xmlns="http://www.w3.org/2001/XMLSchema";
>       targetNamespace="http://www.example.com/substitutionEV2";
>       xmlns:sev2="http://www.example.com/substitutionEV2";
>       xmlns:sev="http://www.example.com/substitutionEV";>
>       <!--
>               Licensed to the Apache Software Foundation (ASF) under one
>               or more contributor license agreements.  See the NOTICE file
>               distributed with this work for additional information
>               regarding copyright ownership.  The ASF licenses this file
>               to you under the Apache License, Version 2.0 (the
>               "License"); you may not use this file except in compliance
>               with the License.  You may obtain a copy of the License at
>               
>               http://www.apache.org/licenses/LICENSE-2.0
>               
>               Unless required by applicable law or agreed to in writing,
>               software distributed under the License is distributed on an
>               "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>               KIND, either express or implied.  See the License for the
>               specific language governing permissions and limitations
>               under the License.    
>       -->
>       <import namespace="http://www.example.com/substitutionEV";
>               schemaLocation="substitutionWithExtensionValues.xsd" />
>       <element name="allResults" type="sev2:AllResultsType" />
>       <complexType name="AllResultsType">
>               <sequence>
>                       <element name="id" type="sev2:Id2Type" />
>                       <element name="results" minOccurs="0" 
> maxOccurs="unbounded"
>                               type="sev2:Results2Type" />
>                       <element name="comment" type="sev2:Comment2Type" />
>               </sequence>
>       </complexType>
>       <complexType name="Results2Type">
>               <complexContent>
>                       <extension base="sev:ResultsType"></extension>
>               </complexContent>
>       </complexType>
>       <simpleType name="Id2Type">
>               <restriction base="sev:IdType">
>                       <maxLength value="10" />
>               </restriction>
>       </simpleType>
>       <complexType name="Comment2Type">
>               <simpleContent>
>                       <restriction base="sev:CommentType">
>                               <minLength value="0" />
>                               <maxLength value="20" />
>                       </restriction>
>               </simpleContent>
>       </complexType>
> </schema>
> ==============================
> substitutionWithExtensionValues1.xml
> ==============================
> <?xml version="1.0" encoding="ASCII"?>
> <sev2:allResults xmlns:sev2="http://www.example.com/substitutionEV2";>
>       <sev2:id>ZZZZZZZZZZZZZZZZZZZZ</sev2:id>
>       <sev:results xmlns:sev="http://www.example.com/substitutionEV";>
>               <sev:id>00000000000000000000</sev:id>
>               <sev:result>
>                       <sev:id>11111111111111111111</sev:id>
>                       <sev:name>name1</sev:name>
>                       <sev:value>1</sev:value>
>               </sev:result>
>               <sev:myResult>
>                       <sev:id>22222222222222222222</sev:id>
>                       <sev:name>myName2</sev:name>
>                       <sev:value>2</sev:value>
>               </sev:myResult>
>               <sev:comment>comment0</sev:comment>
>       </sev:results>
>       <sev:results xmlns:sev="http://www.example.com/substitutionEV";>
>               <sev:id>AAAAAAAAAAAAAAAAAAAA</sev:id>
>               <sev:myResult>
>                       <sev:id>BBBBBBBBBBBBBBBBBBBB</sev:id>
>                       <sev:name>myNameB</sev:name>
>                       <sev:value>11</sev:value>
>               </sev:myResult>
>               <sev:comment>commentA</sev:comment>
>       </sev:results>
>       <sev2:comment language="English">
>               commentZZZZZZZZZZZZZZZZZZ
>       </sev2:comment>
> </sev2:allResults>
> ==============================
> SubstitutionWithExtensionValuesTestCase.java
> ============================== 
> /**
>  *
>  *  Licensed to the Apache Software Foundation (ASF) under one
>  *  or more contributor license agreements.  See the NOTICE file
>  *  distributed with this work for additional information
>  *  regarding copyright ownership.  The ASF licenses this file
>  *  to you under the Apache License, Version 2.0 (the
>  *  "License"); you may not use this file except in compliance
>  *  with the License.  You may obtain a copy of the License at
>  *
>  *    http://www.apache.org/licenses/LICENSE-2.0
>  *
>  *  Unless required by applicable law or agreed to in writing,
>  *  software distributed under the License is distributed on an
>  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>  *  KIND, either express or implied.  See the License for the
>  *  specific language governing permissions and limitations
>  *  under the License.
>  */
> package org.apache.tuscany.sdo.test;
> import java.io.ByteArrayInputStream;
> import java.io.ByteArrayOutputStream;
> import java.io.IOException;
> import java.io.InputStream;
> import java.net.URL;
> import java.util.List;
> import junit.framework.TestCase;
> import org.apache.tuscany.sdo.api.SDOUtil;
> import org.eclipse.emf.common.util.Diagnostic;
> import org.eclipse.emf.ecore.EClass;
> import org.eclipse.emf.ecore.EDataType;
> import org.eclipse.emf.ecore.EObject;
> import org.eclipse.emf.ecore.EStructuralFeature;
> import org.eclipse.emf.ecore.util.Diagnostician;
> import org.eclipse.emf.ecore.util.ExtendedMetaData;
> import com.example.substitution.ev.SEVFactory;
> import com.example.substitution.ev.impl.SEVFactoryImpl;
> import commonj.sdo.DataGraph;
> import commonj.sdo.DataObject;
> import commonj.sdo.Property;
> import commonj.sdo.Type;
> import commonj.sdo.helper.HelperContext;
> import commonj.sdo.helper.TypeHelper;
> import commonj.sdo.impl.HelperProvider;
> public final class SubstitutionWithExtensionValuesTestCase extends TestCase 
> {
>   private static String sev2NamespaceURI;
>   private HelperContext hc;
>   private DataObject dataObject;
>   
>   protected void setUp() throws Exception {
>     super.setUp();
>     hc = HelperProvider.getDefaultContext();
>     registerSEV(hc, true);
>     
>     InputStream inputStream = null;
>     URL url = getClass().getResource("/substitutionWithExtensionValues2.xsd");
>     inputStream = url.openStream();
>     List sev2TypeList = hc.getXSDHelper().define(inputStream, url.toString());
>     inputStream.close();
>     
>     inputStream = 
> getClass().getResourceAsStream("/substitutionWithExtensionValues1.xml");
>     dataObject = hc.getXMLHelper().load(inputStream).getRootObject();
>     inputStream.close();
>     
>     if (sev2NamespaceURI == null)
>     {
>       sev2NamespaceURI = ((Type) sev2TypeList.get(0)).getURI();
>     }
>   }
>   
>   private void registerSEV(HelperContext hc, boolean useStaticRegistration) 
> throws IOException
>   {
>     if (useStaticRegistration)
>     {
>       SEVFactory.INSTANCE.register(hc);
>     }
>     else
>     {
>       InputStream inputStream = null;
>       URL url = 
> getClass().getResource("/substitutionWithExtensionValues.xsd");
>       inputStream = url.openStream();
>       hc.getXSDHelper().define(inputStream, url.toString());
>       inputStream.close();
>     }
>   }
>   public void testComplexTypeWithSubstitutionExtension() throws IOException 
>   {
>     TypeHelper typeHelper = hc.getTypeHelper();
>     
>     Type resultsType = typeHelper.getType(SEVFactoryImpl.NAMESPACE_URI, 
> "ResultsType");
>     Type results2Type = typeHelper.getType(sev2NamespaceURI, "Results2Type");
>     assertTrue("Results2 type does not report Results as a base type", 
>         results2Type.getBaseTypes().contains(resultsType));
>     
>     assertEquals("results.1/myResult.0/id has unexpected value", 
>         "BBBBBBBBBBBBBBBBBBBB", 
> dataObject.getString("results.1/myResult.0/id"));
>   }
>   
>   public void testComplexTypeWithSimpleContentExtensionMetaData() 
>   {
>     TypeHelper typeHelper = hc.getTypeHelper();
>     
>     Type stringBasedCommentType = 
> typeHelper.getType(SEVFactoryImpl.NAMESPACE_URI, "StringBasedCommentType");
>     Type commentType = typeHelper.getType(SEVFactoryImpl.NAMESPACE_URI, 
> "CommentType");
>     Type myCommentType = typeHelper.getType(SEVFactoryImpl.NAMESPACE_URI, 
> "MyCommentType");
>     Type _myCommentType = typeHelper.getType(SEVFactoryImpl.NAMESPACE_URI, 
> "_MyCommentType");
>     Type comment2Type = typeHelper.getType(sev2NamespaceURI, "Comment2Type");
>     Type _comment2Type = typeHelper.getType(sev2NamespaceURI, 
> "_Comment2Type");
>     assertTrue("MyComment type does not report Comment as a base type", 
>         myCommentType.getBaseTypes().contains(commentType));
>     assertTrue("Comment2 type does not report Comment as a base type", 
>         comment2Type.getBaseTypes().contains(commentType));
>     
>     // Test length facets - resort to EMF APIs until Tuscany SDO exposes 
> these directly
>     ExtendedMetaData extendedMetaData = ExtendedMetaData.INSTANCE;
>     EStructuralFeature simpleFeature = null;
>     EDataType commentSimpleType = null;
>     
>     simpleFeature = extendedMetaData.getSimpleFeature((EClass) 
> stringBasedCommentType);
>     commentSimpleType = (EDataType)simpleFeature.getEType();
>     assertEquals(40, extendedMetaData.getMaxLengthFacet(commentSimpleType));
>     
>     // FIXME Work-around EMF's lack of support for re-definable features - 
> SEE TUSCANY-1832
>     commentSimpleType = (EDataType) _myCommentType;
>     assertEquals(40, extendedMetaData.getMaxLengthFacet(commentSimpleType));
>     
>     // FIXME Work-around EMF's lack of support for re-definable features - 
> SEE TUSCANY-1832
>     commentSimpleType = (EDataType) _comment2Type;
>     assertEquals(20, extendedMetaData.getMaxLengthFacet(commentSimpleType));
>   }
>   public void testComplexTypeWithSimpleContentExtensionChangeSummary() throws 
> IOException 
>   {
>     DataGraph dg = SDOUtil.createDataGraph();
>     SDOUtil.setRootObject(dg, dataObject);
>     dg.getChangeSummary().beginLogging();
>     dataObject.getDataObject("results.1/myResult.0").delete();
>     ByteArrayOutputStream baos = new ByteArrayOutputStream();
>     SDOUtil.saveDataGraph(dg, baos, null);
>     ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
>     SDOUtil.loadDataGraph(bais, null, hc);
>   }    
>   
>   public void testSimpleTypeExtension() 
>   {
>     TypeHelper typeHelper = hc.getTypeHelper();
>     
>     Type asciiStringType = typeHelper.getType(SEVFactoryImpl.NAMESPACE_URI, 
> "AsciiStringType");
>     Type idType = typeHelper.getType(SEVFactoryImpl.NAMESPACE_URI, "IdType");
>     assertTrue("IdType does not report AsciiStringType as a base type", 
>         idType.getBaseTypes().contains(asciiStringType));
>     
>     Diagnostic diagnostic = Diagnostician.INSTANCE.validate((EObject) 
> dataObject);
>     String diagnosticMsg = diagnostic.getChildren().toString();
>     Type id2Type = typeHelper.getType(sev2NamespaceURI, "Id2Type");
>     assertTrue("Id2Type does not report IdType as a base type", 
>         id2Type.getBaseTypes().contains(idType));
>     assertTrue("EMF validation should have reported Id pattern match 
> failure", 
>         diagnosticMsg.indexOf("Id") > 0);
>   }
> }
> STACKTRACE:
> org.eclipse.emf.ecore.resource.Resource$IOWrappedException: Value '' is not 
> legal. 
> (file:///C:/development/working/1/tuscany-sdo/sdo/tools-test/all.datagraph, 
> 27, 48)
>       at 
> org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.handleErrors(XMLLoadImpl.java:83)
>       at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:193)
>       at 
> org.apache.tuscany.sdo.util.DataGraphResourceFactoryImpl$DataGraphResourceImpl$LoadImpl.load(DataGraphResourceFactoryImpl.java:455)
>       at 
> org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:179)
>       at 
> org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1094)
>       at 
> org.apache.tuscany.sdo.helper.SDOHelperImpl.loadDataGraph(SDOHelperImpl.java:139)
>       at 
> org.apache.tuscany.sdo.helper.SDOHelperImpl.loadDataGraph(SDOHelperImpl.java:157)
>       at org.apache.tuscany.sdo.api.SDOUtil.loadDataGraph(SDOUtil.java:150)
>       at 
> org.apache.tuscany.sdo.test.SubstitutionWithExtensionValuesTestCase.testComplexTypeWithSimpleContentExtensionChangeSummary(SubstitutionWithExtensionValuesTestCase.java:150)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:585)
>       at junit.framework.TestCase.runTest(TestCase.java:154)
>       at junit.framework.TestCase.runBare(TestCase.java:127)
>       at junit.framework.TestResult$1.protect(TestResult.java:106)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.framework.TestResult.run(TestResult.java:109)
>       at junit.framework.TestCase.run(TestCase.java:118)
>       at 
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
>       at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> Caused by: org.eclipse.emf.ecore.xmi.IllegalValueException: Value '' is not 
> legal. 
> (file:///C:/development/working/1/tuscany-sdo/sdo/tools-test/all.datagraph, 
> 27, 48)
>       at 
> org.eclipse.emf.ecore.xmi.impl.XMLHandler.setFeatureValue(XMLHandler.java:2421)
>       at 
> org.eclipse.emf.ecore.xmi.impl.XMLHandler.setFeatureValue(XMLHandler.java:2406)
>       at 
> org.eclipse.emf.ecore.xmi.impl.XMLHandler.endElement(XMLHandler.java:1347)
>       at 
> org.apache.tuscany.sdo.util.DataGraphResourceFactoryImpl$DataGraphResourceImpl$LoadImpl$1.endElement(DataGraphResourceFactoryImpl.java:627)
>       at 
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633)
>       at 
> com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:221)
>       at 
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:322)
>       at 
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693)
>       at 
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
>       at 
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
>       at 
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
>       at 
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
>       at 
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
>       at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
>       at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:183)
>       ... 23 more
> Caused by: java.lang.NumberFormatException: Zero length BigInteger
>       at java.math.BigInteger.<init>(BigInteger.java:275)
>       at java.math.BigInteger.<init>(BigInteger.java:447)
>       at 
> org.eclipse.emf.ecore.xml.type.impl.XMLTypeFactoryImpl.createInteger(XMLTypeFactoryImpl.java:832)
>       at 
> org.apache.tuscany.sdo.model.impl.ModelFactoryImpl.createIntegerFromString(ModelFactoryImpl.java:2086)
>       at 
> com.example.substitution.ev.impl.SEVFactoryImpl.create_Integer32BitFromString(SEVFactoryImpl.java:754)
>       at 
> com.example.substitution.ev.impl.SEVFactoryImpl.createFromString(SEVFactoryImpl.java:143)
>       at 
> org.apache.tuscany.sdo.impl.FactoryBase$SDOEFactoryImpl.createFromString(FactoryBase.java:286)
>       at 
> org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.createFromString(XMLHelperImpl.java:1489)
>       at 
> org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.setValue(XMLHelperImpl.java:1053)
>       at 
> org.eclipse.emf.ecore.xmi.impl.XMLHandler.setFeatureValue(XMLHandler.java:2416)
>       ... 37 more
> SAVED PROBLEMATIC DATA GRAPH
> <?xml version="1.0" encoding="ASCII"?>
> <sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xmlns:sdo="commonj.sdo"
>     xmlns:sdo_1="http://www.apache.org/tuscany/2005/SDO"; 
> xmlns:sev="http://www.example.com/substitutionEV";
>     xmlns:sev2="http://www.example.com/substitutionEV2";>
>   <changeSummary xmlns=""
>       logging="true">
>     <objectChanges key="#//@eRootObject/@results.1">
>       <value xsi:type="sdo_1:ChangeSummarySetting" featureName="resultGroup">
>         <listChanges index="0">
>           <featureMapEntryValues featureName="myResult" 
> referenceValue="#//@eChangeSummary/@objectsToAttach.0"/>
>         </listChanges>
>       </value>
>     </objectChanges>
>     <objectChanges key="#//@eChangeSummary/@objectsToAttach.0">
>       <value xsi:type="sdo_1:ChangeSummarySetting" featureName="value" 
> set="false"
>           referenceValue="#//@eChangeSummary/@objectsToAttach.1"/>
>       <value xsi:type="sdo_1:ChangeSummarySetting" featureName="id" 
> dataValue="BBBBBBBBBBBBBBBBBBBB"
>           set="false"/>
>       <value xsi:type="sdo_1:ChangeSummarySetting" featureName="name" 
> dataValue="myNameB"
>           set="false"/>
>     </objectChanges>
>     <objectChanges key="#//@eChangeSummary/@objectsToAttach.1">
>       <value xsi:type="sdo_1:ChangeSummarySetting" featureName="value" 
> dataValue="11"
>           set="false"/>
>     </objectChanges>
>     <objectsToAttach xsi:type="sev:MyResultType"/>
>     <objectsToAttach xsi:type="sev:ValueType"/>
>   </changeSummary>
>   <sev2:AllResultsType>
>     <id>ZZZZZZZZZZZZZZZZZZZZ</id>
>     <results>
>       <id>00000000000000000000</id>
>       <sev:result>
>         <id>11111111111111111111</id>
>         <name>name1</name>
>         <value>1</value>
>       </sev:result>
>       <sev:myResult>
>         <id>22222222222222222222</id>
>         <name>myName2</name>
>         <value>2</value>
>       </sev:myResult>
>       <comment>comment0</comment>
>     </results>
>     <results>
>       <id>AAAAAAAAAAAAAAAAAAAA</id>
>       <comment>commentA</comment>
>     </results>
>     <comment language="English">
>               commentZZZZZZZZZZZZZZZZZZ
>       </comment>
>   </sev2:AllResultsType>
> </sdo:datagraph>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to