[xsde-users] Problem with xsi:type

gde at acs-inc.ru gde at acs-inc.ru
Mon May 30 13:25:30 EDT 2022


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…


More information about the xsde-users mailing list