You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Caroline Maynard (JIRA)" <tu...@ws.apache.org> on 2006/12/01 18:08:22 UTC
[jira] Commented: (TUSCANY-963) Spurious elements generated
[ http://issues.apache.org/jira/browse/TUSCANY-963?page=comments#action_12454956 ]
Caroline Maynard commented on TUSCANY-963:
------------------------------------------
It's not necessary for the element to be open for this to occur, it's sufficient for it to be sequenced.
> Spurious elements generated
> ---------------------------
>
> Key: TUSCANY-963
> URL: http://issues.apache.org/jira/browse/TUSCANY-963
> Project: Tuscany
> Issue Type: Bug
> Components: C++ SDO
> Affects Versions: Cpp-current
> Reporter: Caroline Maynard
> Priority: Critical
>
> I have a schema like so:
> <?xml version="1.0" encoding="utf-8" ?>
> <xs:schema targetNamespace="http://www.w3.org/2005/Atom"
> xmlns="http://www.w3.org/2005/Atom" xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />
> <xs:import namespace="http://www.w3.org/1999/xhtml" schemaLocation="xhtml1-strict.xsd" />
> <xs:element name="content" type="contentType" minOccurs="0" />
> <xs:complexType name="contentType" mixed="true" >
> <xs:sequence>
> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
> </xs:sequence>
> <xs:attribute name="type" type="xs:string" default="text" />
> <xs:attribute name="src" type="xs:string" /> <!-- uriType -->
> <xs:attributeGroup ref="commonAttributes"/>
> </xs:complexType>
> <xs:attributeGroup name="commonAttributes">
> <xs:attribute ref="xml:base" />
> <xs:attribute ref="xml:lang" />
> <xs:anyAttribute/>
> </xs:attributeGroup>
> </xs:schema>
> and a document like so:
> <?xml version="1.0" encoding="UTF-8"?>
> <content xmlns="http://www.w3.org/2005/Atom" xmlns:tns="http://www.w3.org/2005/Atom"
> xml:base="blah" xml:lang="blah2" />
> I load the schema with XSDHelper::defineFile(), and then load the document with XMLHelper::loadFile().
> Then I do a save() of the document. The output is:
> <?xml version="1.0" encoding="UTF-8"?>
> <content xmlns="http://www.w3.org/2005/Atom"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:tns="http://www.w3.org/2005/Atom"
> base="blah" lang="blah2">
> <base>blah</base>
> <lang>blah2</lang>
> </content>
> So not only do I have the lang and base attributes on <content>, I get some elements thrown in for free, too.
> You'll notice that id is both sequenced and open. I'll find out if both these conditions are necessary.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org
Re: [jira] Commented: (TUSCANY-963) Spurious elements generated
Posted by Caroline Maynard <ca...@gmail.com>.
I traced this through to SDOXMLWriter::writeDO, line 1105 in my version
if (dataObjectType.isSequencedType())
{
SequencePtr sequence = dataObject->getSequence();
if (sequence)
{
for (i=0; i<sequence->size(); i++)
{
if (sequence->isText(i))
{
// do unstructured text stuff, and
continue;
} // end TextType
const Property& seqProp = sequence->getProperty(i);
SDOXMLString seqPropName = seqProp.getName();
const Type& seqPropType = seqProp.getType();
if (seqPropType.isDataObjectType())
{
// do DataObject stuff
} // end DataObject
else
{
// Sequence member is a primitive
writeXMLElement(writer,
seqPropName,
sequence->getCStringValue(i));
} // end DataType
} // end - iterate over sequence
}
} // end sequence handling
so it seems that if the data object is sequenced, it will write primitive
properties as elements unconditionally. The code to handle non-sequenced
objects, which follows this snippet, has some much more complicated
conditions.Looks like it has been updated while the sequenced clause has
been allowed to go a bit stale.
On 01/12/06, Caroline Maynard (JIRA) <tu...@ws.apache.org> wrote:
>
> [
> http://issues.apache.org/jira/browse/TUSCANY-963?page=comments#action_12454956]
>
> Caroline Maynard commented on TUSCANY-963:
> ------------------------------------------
>
> It's not necessary for the element to be open for this to occur, it's
> sufficient for it to be sequenced.
>
> > Spurious elements generated
> > ---------------------------
> >
> > Key: TUSCANY-963
> > URL: http://issues.apache.org/jira/browse/TUSCANY-963
> > Project: Tuscany
> > Issue Type: Bug
> > Components: C++ SDO
> > Affects Versions: Cpp-current
> > Reporter: Caroline Maynard
> > Priority: Critical
> >
> > I have a schema like so:
> > <?xml version="1.0" encoding="utf-8" ?>
> > <xs:schema targetNamespace="http://www.w3.org/2005/Atom"
> > xmlns="http://www.w3.org/2005/Atom" xmlns:xs="
> http://www.w3.org/2001/XMLSchema">
> > <xs:import namespace="http://www.w3.org/XML/1998/namespace"
> schemaLocation="xml.xsd" />
> > <xs:import namespace="http://www.w3.org/1999/xhtml" schemaLocation="
> xhtml1-strict.xsd" />
> > <xs:element name="content" type="contentType" minOccurs="0" />
> > <xs:complexType name="contentType" mixed="true" >
> > <xs:sequence>
> > <xs:any namespace="##other" processContents="lax" minOccurs="0"
> maxOccurs="unbounded" />
> > </xs:sequence>
> > <xs:attribute name="type" type="xs:string" default="text" />
> > <xs:attribute name="src" type="xs:string" /> <!-- uriType -->
> > <xs:attributeGroup ref="commonAttributes"/>
> > </xs:complexType>
> > <xs:attributeGroup name="commonAttributes">
> > <xs:attribute ref="xml:base" />
> > <xs:attribute ref="xml:lang" />
> > <xs:anyAttribute/>
> > </xs:attributeGroup>
> > </xs:schema>
> > and a document like so:
> > <?xml version="1.0" encoding="UTF-8"?>
> > <content xmlns="http://www.w3.org/2005/Atom" xmlns:tns="
> http://www.w3.org/2005/Atom"
> > xml:base="blah" xml:lang="blah2" />
> > I load the schema with XSDHelper::defineFile(), and then load the
> document with XMLHelper::loadFile().
> > Then I do a save() of the document. The output is:
> > <?xml version="1.0" encoding="UTF-8"?>
> > <content xmlns="http://www.w3.org/2005/Atom"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > xmlns:tns="http://www.w3.org/2005/Atom"
> > base="blah" lang="blah2">
> > <base>blah</base>
> > <lang>blah2</lang>
> > </content>
> > So not only do I have the lang and base attributes on <content>, I get
> some elements thrown in for free, too.
> > You'll notice that id is both sequenced and open. I'll find out if both
> these conditions are necessary.
>