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]