Hi.
For (2) take a look at the following contribution: RibbonBar Menu Generator - Appeon Community. This will help you to convert a traditional menu to an xml for ribbonbar control.
You cannot switch, as ribbonbar is a control positioned on a window. You can hide by make it invisible. This will leave a space on that window! You will have to "rearrange" controls on your window! Also you might be aware that a window may have both a menu and a ribbonbar control. While you can hide the ribbonbar control, menu cannot be removed. So switching while an application is running may be a difficult task. If you want an option that will take effect after you restart your application, this can be easily achieved (you can do that using inheritance and controlling an option to decide which window to open).
There is no "official" way to achieve that right now. It's on the roadmap for Powerbuilder 2025. But we don't know how it will work.
For (1), this should be what you prefer. If you want to use the designer then you should use xml. But you can export it as json! The ribbonbar control can load xml and json. If you need to alter the ribbonbar while your application is running, you should use the markup language (json or xml) that you are more familiar with.
Andreas.