Author: robbinspg
Date: Wed Dec 13 01:44:03 2006
New Revision: 486565

URL: http://svn.apache.org/viewvc?view=rev&rev=486565
Log:
Accurately write element prefix

Modified:
    
incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/PropertyDefinitionImpl.h
    
incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp
    incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp
    incubator/tuscany/cpp/sdo/runtime/core/test/bunique-outxml.txt
    incubator/tuscany/cpp/sdo/runtime/core/test/buniqueread-out.txt

Modified: 
incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/PropertyDefinitionImpl.h
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/PropertyDefinitionImpl.h?view=diff&rev=486565&r1=486564&r2=486565
==============================================================================
--- 
incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/PropertyDefinitionImpl.h 
(original)
+++ 
incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/PropertyDefinitionImpl.h 
Wed Dec 13 01:44:03 2006
@@ -60,6 +60,7 @@
 
             SDOXMLString name;
             SDOXMLString localname;
+            SDOXMLString namespaceURI;
             
             SDOXMLString typeUri;
             SDOXMLString typeName;

Modified: 
incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp?view=diff&rev=486565&r1=486564&r2=486565
==============================================================================
--- 
incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp 
(original)
+++ 
incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOSchemaSAX2Parser.cpp 
Wed Dec 13 01:44:03 2006
@@ -779,6 +779,7 @@
                 thisProperty.name,
                 thisProperty.localname);
 
+            thisProperty.namespaceURI = schemaInfo.getTargetNamespaceURI();
             
             setType(thisProperty, attributes, namespaces);
 
@@ -850,7 +851,9 @@
             setName(attributes,
                 thisProperty.name,
                 thisProperty.localname);
-            
+
+            thisProperty.namespaceURI = schemaInfo.getTargetNamespaceURI();
+
             setType(thisProperty, attributes, namespaces);
             
             setCurrentProperty(thisProperty);                    

Modified: 
incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp?view=diff&rev=486565&r1=486564&r2=486565
==============================================================================
--- incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp 
(original)
+++ incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/SDOXMLWriter.cpp Wed 
Dec 13 01:44:03 2006
@@ -910,15 +910,24 @@
                         const Property& seqProp = sequence->getProperty(i);
                         SDOXMLString seqPropName = seqProp.getName();
                         const Type& seqPropType = seqProp.getType();
+                        SDOXMLString seqPropURI;
 
-                                               // Do not write attributes as 
members of the sequence
+                        // Do not write attributes as members of the sequence
                                                XSDPropertyInfo* pi = 
getPropertyInfo(dataObjectType, seqProp);
-                                               PropertyDefinitionImpl propdef;
-                                               if (pi && 
!(pi->getPropertyDefinition().isElement))
-                                               {
-                                                       continue;
-                                               }
+                        PropertyDefinitionImpl propdef;
+                        if (pi)
+                        {
+                            propdef = pi->getPropertyDefinition();
+                            if (!(propdef.isElement))
+                            {
+                                continue;
+                            }
+
+                            seqPropName = propdef.localname;
+                            seqPropURI = propdef.namespaceURI;
+                        }
 
+       
                         if (seqPropType.isDataObjectType())
                         {                                
                             DataObjectPtr doValue;
@@ -942,18 +951,18 @@
                                 else
                                 {
                                     // If property is an undeclared propery of 
an open type
-                                    // we write xsi:type information but not 
the element uri
+                                    // we write xsi:type
                                     bool xsiTypeNeeded = false;
-                                    SDOXMLString seqPropTypeUri = 
seqPropType.getURI();
                                     if (isOpen)
                                     {
                                         if 
(typeImpl.getPropertyImpl(seqPropName) == 0)
                                         {
                                             xsiTypeNeeded = true;
-                                  //          seqPropTypeUri = "";
                                         }
                                     }
-                                    writeDO(doValue, seqPropTypeUri, 
seqPropName, xsiTypeNeeded);
+                                    if (pi && 
!(pi->getPropertyDefinition().isElement))
+       
+                                    writeDO(doValue, seqPropURI, seqPropName, 
xsiTypeNeeded);
                                 }
                             }
                         } // end DataObject
@@ -992,6 +1001,7 @@
                     if (dataObject->isSet(pl[i]))
                     {
                         SDOXMLString propertyName(pl[i].getName());
+                        SDOXMLString propertyTypeURI;
 
                         XSDPropertyInfo* pi = getPropertyInfo(dataObjectType, 
pl[i]);
                         if (pi)
@@ -999,10 +1009,10 @@
                             if (!pi->getPropertyDefinition().isElement)
                                 continue;
                             propertyName = 
pi->getPropertyDefinition().localname;
+                            propertyTypeURI = 
pi->getPropertyDefinition().namespaceURI;
                         }
                         
                         const Type& propertyType = pl[i].getType();
-                        SDOXMLString propertyTypeURI = propertyType.getURI();
                         bool xsiTypeNeeded = false;
 
                         // If property is an undeclared propery of an open type

Modified: incubator/tuscany/cpp/sdo/runtime/core/test/bunique-outxml.txt
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/runtime/core/test/bunique-outxml.txt?view=diff&rev=486565&r1=486564&r2=486565
==============================================================================
--- incubator/tuscany/cpp/sdo/runtime/core/test/bunique-outxml.txt (original)
+++ incubator/tuscany/cpp/sdo/runtime/core/test/bunique-outxml.txt Wed Dec 13 
01:44:03 2006
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<rooty xmlns="test" xsi:type="Root" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:tns2="nottest" 
xmlns:tns="test"><duplicate id="1"><ob/></duplicate><tns2:duplicate2 
id="3"/><unique id="5"><ob/></unique><duplicatelist 
id="2"><ob/></duplicatelist><tns2:duplicatelist2 id="4"/><uniquelist 
id="6"/></rooty>
+<rooty xmlns="test" xsi:type="Root" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:tns2="nottest" 
xmlns:tns="test"><duplicate id="1"><ob/></duplicate><duplicate2 id="3"/><unique 
id="5"><ob/></unique><duplicatelist id="2"><ob/></duplicatelist><duplicatelist2 
id="4"/><uniquelist id="6"/></rooty>

Modified: incubator/tuscany/cpp/sdo/runtime/core/test/buniqueread-out.txt
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/runtime/core/test/buniqueread-out.txt?view=diff&rev=486565&r1=486564&r2=486565
==============================================================================
--- incubator/tuscany/cpp/sdo/runtime/core/test/buniqueread-out.txt (original)
+++ incubator/tuscany/cpp/sdo/runtime/core/test/buniqueread-out.txt Wed Dec 13 
01:44:03 2006
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<rooty xmlns="test" xsi:type="Root" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:tns2="nottest" 
xmlns:tns="test"><duplicate id="1"><ob/></duplicate><tns2:duplicate2 
id="3"/><unique id="5"><ob/></unique><duplicatelist 
id="2"><ob/></duplicatelist><tns2:duplicatelist2 id="4"/><uniquelist 
id="6"/></rooty>
+<rooty xmlns="test" xsi:type="Root" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:tns2="nottest" 
xmlns:tns="test"><duplicate id="1"><ob/></duplicate><duplicate2 id="3"/><unique 
id="5"><ob/></unique><duplicatelist id="2"><ob/></duplicatelist><duplicatelist2 
id="4"/><uniquelist id="6"/></rooty>



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

Reply via email to