void ExternalDataset::parse(PharmMLReader &reader, xml::Node node) { this->oid = node.getAttribute("oid").getValue(); std::vector<xml::Node> array = reader.getElements(node, "./design:ColumnMapping"); for (xml::Node n : array) { pharmmlcpp::ColumnMapping *col = new ColumnMapping(reader, n); this->col_maps.push_back(col); } // TODO: Support ColumnTransformation std::vector<xml::Node> mdm_nodes = reader.getElements(node, "./design:MultipleDVMapping"); for (xml::Node mdm_node : mdm_nodes) { std::unique_ptr<MultipleDVMapping> mdm = std::make_unique<MultipleDVMapping>(reader, mdm_node); this->multi_dv_maps.push_back(std::move(mdm)); } xml::Node ds_node = reader.getSingleElement(node, "./ds:DataSet"); if (ds_node.exists()) { this->dataset = new Dataset(reader, ds_node); } else { // TODO: Support CodeInjection } this->toolName = node.getAttribute("toolName").getValue(); }