From gde at acs-inc.ru Mon May 30 13:25:30 2022 From: gde at acs-inc.ru (gde@acs-inc.ru) Date: Tue May 31 08:13:22 2022 Subject: [xsde-users] Problem with xsi:type Message-ID: <1653931530.646489803@f42.i.mail.ru> Hello I?m successfully make library libxsde.a for win and linux. I?m trying to parse example IEEE 1671.3-Example2.xml from UUT-Examples folder from ieee site with corresponding xsd files.? https://standards.ieee.org/wp-content/uploads/import/download/1671.1-2017_downloads.zip My commands are xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" Common.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" DatumTypes.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" DigitalTSFLib.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" ExtTSFLib.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" HardwareCommon.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" IeeeStd1641.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" --anonymous-regex ",.* .* (.*)/(.*),#$1_$2#," Operations.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" ParallelDigitalTSFLib.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" SerialDigitalTSFLib.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" STDBSC.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" STDTSF.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" STDTSFLib.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" TestAdapterDescription.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" --anonymous-regex ",.* .* (.*)/(.*),#$1_$2#," TestDescription.xsd? xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" TestEquipment.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" UUTDescription.xsd xsde cxx-hybrid --disable-warning --generate-detach --generate-parser --generate-aggregate --generate-polymorphic --generate-typeinfo --reuse-style-mixin --output-dir "../../cxx/atml" UUTInstance.xsd And when I?m reading like this try { ? ? ? ? ? ? ? UUTDescription::UUTDescription_paggr uutd_p; ? ? ? ? ? ? ? xml_schema::document_pimpl doc_p (uutd_p.root_parser (), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? uutd_p.root_namespace (), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? uutd_p.root_name (), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? true); ? ? ? ? ? ? ? uutd_p.pre (); ? ? ? ? ? ? ? doc_p.parse (filename); ? ? ? ? ? ? ? UUTDescription::UUTDescription* uutd = uutd_p.post(); ? ? ? ? ? ? ? std::cout << uutd->Description() << endl; ? ? ? ? ? ? ? for (Common::PhysicalInterface::choice_type &Interface : uutd->Interface().choice()) { ? ? ? ? ? ? ? ? ? if (Interface.choice_arm() == Common::PhysicalInterface::choice_type::choice_arm_tag::Ports_tag) { ? ? ? ? ? ? ? ? ? ? ? for (Common::Port1 &port : Interface.Ports().Port()) { ? ? ? ? ? ? ? ? ? ? ? ? ? for (Common::ConnectorLocation &pin : port.ConnectorPins().ConnectorPin()) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? std::cout << " ConnectorPin " << pin.connectorID() << " " << pin.pinID() << std::endl; ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? } ? ? ? ? ? } ? ? ? ? ? catch (const xml_schema::parser_exception& e) { ? ? ? ? ? ? ? std::cerr << e << endl; ? ? ? ? ? } I?m getting ConnectorId and PinId only for last 3 ConnectorPins. Difference in xsi:type=?uut:UUTConnectorLocation?. But I don?t understand what I?m doing wrong? From boris at codesynthesis.com Tue May 31 08:27:07 2022 From: boris at codesynthesis.com (Boris Kolpackov) Date: Tue May 31 08:22:52 2022 Subject: [xsde-users] Problem with xsi:type In-Reply-To: <1653931530.646489803@f42.i.mail.ru> References: <1653931530.646489803@f42.i.mail.ru> Message-ID: gde@acs-inc.ru writes: > I?m getting ConnectorId and PinId only for last 3 ConnectorPins. > Difference in xsi:type=?uut:UUTConnectorLocation?. But I don?t > understand what I?m doing wrong? You are most likely missing the --polymorphic-type option(s). For background, see: https://codesynthesis.com/projects/xsde/documentation/cxx/hybrid/guide/#3.7 And: https://codesynthesis.com/projects/xsde/documentation/cxx/hybrid/guide/#4.10 There is also the cxx/hybrid/polymorphism example which you may find relevant.