Say I have the below xml

I'm trying to write an xsd that will allow a choice that can have either:
- all will be empty
- if b is present a should be there
- if d is present b should be there
- if c is present b doesn't have to be there

It seems you can't create groups with the same element in the the different groups. Is there a way to accomplish this with XSD?