xsi:type not always set for complexTypes
----------------------------------------
Key: TUSCANY-1564
URL: https://issues.apache.org/jira/browse/TUSCANY-1564
Project: Tuscany
Issue Type: Bug
Components: C++ SDO
Affects Versions: Cpp-Next
Environment: Win XP and Gentoo Linux
Reporter: Matthew Peters
This has been reported by a user of the PHP SDO code. I have verified that he
is right - the problem does exist. I will cut and paste in the PHP example from
the defect http://pecl.php.net/bugs/bug.php?id=11774 but the php-ness of the
example is irrelevant: under the covers we are just manipulating a C++ SDO and
then calling XMLHelper->save()
In the defect text below he puts in both expected and actual output. He is
right to raise the problem in the sense that I have tried reading in the actual
and expected xml under XERCES with schema validation turned on, and the actual
will *not* validate whereas the expected will.
Incidentally there is some history w.r.t. xsi:types - in a different case they
were coming out when we did not want them and they were suppressed for us. See
for example JIRA 1297. I do not know the rules which should determine whether
it should be present or not.
Here follows the original PHP defect.
Description:
------------
xsi:type is not always set for complexTypes. Notice the absence of
xsi:type="collectionInfo" in the actual output.
Reproduce code:
---------------
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="request" type="requestType"/>
<xsd:complexType name="requestType" abstract="true"/>
<xsd:complexType name="collectionInfo">
<xsd:complexContent>
<xsd:extension base="requestType">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element name="collection"/>
</xsd:sequence>
<xsd:attribute name="kind" type="xsd:string"
fixed="collectionInfo"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="request-list">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="request" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<?php
try {
$xmldas = SDO_DAS_XML::create("request.xsd");
try {
$doc = $xmldas->createDocument('', 'request-list');
$rdo = $doc->getRootDataObject();
$request = $xmldas->createDataObject('', 'collectionInfo');
$request->collection->insert('Blah');
$request->kind = 'collectionInfo';
$rdo->request->insert($request);
print($xmldas->saveString($doc));
} catch (SDO_Exception $e) {
print($e);
}
} catch (SDO_Exception $e) {
print("Problem creating an XML document: " . $e->getMessage());
}
?>
Expected result:
----------------
<?xml version="1.0" encoding="UTF-8"?>
<request-list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<request kind="collectionInfo" xsi:type="collectionInfo">
<collection>Blah</collection>
</request>
</request-list>
Actual result:
--------------
<?xml version="1.0" encoding="UTF-8"?>
<request-list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<request kind="collectionInfo">
<collection>Blah</collection>
</request>
</request-list>
--
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]