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]