[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