South Africa ODI squad Faf du Plessis (capt), Hashim Amla, Junior Dala, Quinton de Kock, JP Duminy, Reeza Hendricks, Heinrich Klaasen, Keshav Maharaj, Aiden Markram, David Miller, Wiaan Mulder, Lungi Ngidi, Andile Phehlukwayo, Kagiso Rabada, Tabraiz Shamsi IN: Junior Dala, Reeza Hendricks, Keshav Maharaj, Wiaan Mulder OUT: AB de Villiers, Morne Morkel, Imran Tahir, Chris Morris, Khaya Zondo

Imran Tahir, South Africa's top-ranked ODI bowler at No.6 in the world, has been rested from the ODI squad to play Sri Lanka in July-August as the country gears up for Vision 2019. Left-arm spinner Keshav Maharaj, who has played two ODIs, and left-arm wristspinner Tabraiz Shamsi have been included in the 15-man squad in Tahir's place.

The series, which will consist of five ODIs and a one-off T20I, is the first of five in South Africa's build-up to the 2019 World Cup, and the first since AB de Villiers announced his international retirement. The uncapped Reeza Hendricks, wicketkeeper-batsman Heinrich Klaasen and Aiden Markram are the three players in contention for de Villiers' middle-order spot.

Faf du Plessis returns as captain, after missing five of the six ODIs against India earlier in the year with a broken finger, and Junior Dala, who has played three T20s, comes in as an option in place of the retired Morne Morkel. Wiaan Mulder is the only other addition from the group that played against India, and replaces Chris Morris, who is recovering from a back injury sustained during the IPL. Morris is only expected to be fit for the South African home summer, which starts against Zimbabwe in late September.

The decision to rest Tahir is surprising, given that the legspinner has not featured for South Africa since February and has only had game time in the PSL and IPL since then. He will next play for Guyana Amazon Warriors in the CPL, which takes place from August 8 until September 16, and clashes with the fourth and fifth ODIs in Sri Lanka and the one-off T20I. But Tahir is not the only South African player taking part in that tournament with Hashim Amla, David Miller and Junior Dala also involved, so that is not the reason for his omission.

Instead, South Africa's convener of selectors Linda Zondi explained that leaving Tahir out had less to do with him and more to do with the other spinners in contention for the World Cup squad, and confirmed Tahir is still set to be premier player in that department. "We have taken the strategic decision to rest Imran Tahir so that we can get a clearer picture as to who our best second spinner is to back him up at the World Cup. Imran will be our first- choice spinner at the World Cup but, if we play him against Sri Lanka, it is unlikely that we will be able to play both Tabraiz Shamsi and Keshav Maharaj," Zondi said. "By taking this route, we will be able to play the two of them together."

Shamsi was the leading wicket-taker in the one-day cup with 26 wickets from nine matches at 14.84 and was named the domestic one-day and T20 cricketer of the year at CSA's annual awards. He would appear to be ahead of Maharaj, who has only played two ODIs, but who the selectors are keen to see more of in white-ball cricket.

"Tabraiz has been the outstanding bowler in franchise white ball cricket this past season," Zondi said. "Keshav has been outstanding for us in red-ball cricket and we need to give him the opportunity to show us what he can do at international level in the ODI format."

The same chance has not been extended to Dean Elgar, who has reeled off three successive fifties for Surrey in the Royal London One-Day Cup, and has made clear his desire to be considered. Elgar told reporters at the CSA Awards that he was "very much available" for ODI cricket for South Africa but was "sick and tired" of having to prove himself every year. Despite coach Ottis Gibson confirming Elgar would "come into the conversation", he has not been considered at this stage.

Neither has Dale Steyn, who made his return from a heel injury for Hampshire in a List A game earlier this month, and will continue to play for the county this season. Steyn was named in South Africa's Test squad to Sri Lanka and it seems the selectors want him to focus on the longer format rather than have an eye on the World cup.

South Africa's attack will be led by Kagiso Rabada and Lungi Ngidi, with Dala, Andile Phehlukwayo and Wiaan Mulder as third and fourth seam options. Between them, the quintet have 78 ODI caps, and 48 of those belong to Rabada. Experience is to be found in the batting line-up, where Hashim Amla and Quinton de Kock bring a familiar feel to the top order and du Plessis, JP Duminy and David Miller make up the middle order, but that is by no means set in stone as the shape South Africa will take at the World Cup.

At the end of last summer, Gibson said South Africa would continue to experiment with their ODI squad and would start to refine their World Cup choices as they get closer to the tournament, in the beginning of 2019. South Africa have 21 ODIs scheduled - five in Sri Lanka, three against Zimbabwe, three in Australia, five against Pakistan and five more against Sri Lanka at home - before the World Cup, leaving ample time to tweak their XI. The ODI squad that travels to Sri Lanka will also play in the one-off T20I.

The selectors have also named South Africa A squads that will travel to India for a triangular series featuring India A and Australia A, and two unofficial Tests against India A. Khaya Zondo, who was part of the ODI squad that played against India but has been left out of the group to play Sri Lanka, will captain both sides. Temba Bavuma, Farhaan Behardien and Theunis de Bruyn are some of the notable batting names that could be eyeing the World Cup squad while allrounder Dwaine Pretorius and fast bowler Dane Paterson could also push for places.

South Africa A squad for triangular series: Khaya Zondo (capt), Temba Bavuma, Farhaan Behardien, Gihahn Cloete, Theunis de Bruyn, Robbie Frylinck, Beuran Hendricks, Sisanda Magala, Pieter Malan, Senuran Muthusamy, Dane Paterson, Rudi Second, Dwaine Pretorius, Tabraiz Shamsi, Malusi Siboto.

South Africa A squad for four-day series against India A: Khaya Zondo (capt), Sarel Erwee, Zubayr Hamza, Beuran Hendricks, Pieter Malan, Senuran Muthusamy, Mthiwekhaya Nabe, Anrich Nortje, Duanne Olivier, Dane Piedt, Dwaine Pretorius, Rudi Second, Rassie van der Dussen, Malusi Siboto, Shaun von Berg.