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();
    }