Inventory System?

Okay so I’m working on a game and I’ve been really conflicted recently on how I want to go about doing the inventory system.

What I mean is like how it actually works.

My friend suggested that each inventory item would have an XML file where you could load data from it, but I’m not sure how I would get the rendering to work for that and I’m not sure it’s efficient. Along with that, some items (weapons) need to have functionality to them when they are selected/equipped so I’m not really sure how that would work with XML.

I myself had two ideas: Classes for each type of item with each their own rendering method, or Enum values for each item where a switch statement would decide what to render and what kind of functionality it would have, although that would create a ton of lag the more items that were added into the game.

So, if I could get some opinions and ideas on this, that would be lovely! Thanks!