I think that you can create a psml file with only one portlet entity called in this way (but remember to modify the PortletPipeline pipeline adding all the valves you need, see pipelines.xml file):
http://<host:port>/<jetspeed>/portlet/page.psml?entity=<portletentityid> that gives back only the markup of the portlet entity. In this portlet you can use all typical portal components (such as UserManager and GroupManager) and gives back to the caller the xml you need. The only problem using this approach could be the content type of the request. Jetspeed in fact produces content types using a specific mapping table (using a normal html browser this produces "text/html"). Maybe it would a very nice feature if the content type of a psml file can be overridden and forced inside the psml itself. I'm using JS 2.1.2 Bye, ROb.
