I think, the public API should only be dealing with JBossXSModel which should be an extension to the xerces XSModel.
That JBossXSModel internally uses the xerces schema parser should be an implementation detail.
public JBossXSModel getJBossXSModel(XSModel)
would then be redundant if the clients only ever get passed instances of JBossXSModel.
I don't see a benefit in giving the client the crude XSModel if that is read-only and if JBossXSModel provides a superset of functionality.
I have had the same thoughts for sometime. I will migrate the XSModel implementation from Xerces team to be engulfed in the JBossXSModel implementation. This will take some time.