Hi Stefano I'll post the XML on Monday, but in answer to your question:
Looking at the code the id should never be empty, because the function is called as follow: String localId = new StringBuffer(id).append("/device/").append(i).toString(); buildDevice(localId,devUPnP,aux[0]); and as you can see the localId can't be an empty String. ... The point that I was making was that if you follow this function back: public static Device createCyberLinkDevice(ServiceReference sr) private static Device buildRootDeviceNode(Node root,ServiceReference sr) addDevices("",devUPnP,sr); You find that the empty string is passed in whenever a new root device is created. Is this correct? This means that every device will have a localId starting /device/ On 28/06/2008 10:29, "Stefano Lenzi" <[EMAIL PROTECTED]> wrote: Jackson, Bruce wrote: > We are experiencing a problem, when trying to build a ContentDirectory which > can be seen by an Xbox 360. > We are aware that the Xbox uses a "modified" UPnP implementation, and having > taken this into account, the Xbox can see the UPnP device, (that is, it > requests the device description xml) but never does anything else. Thus, we > believe that there is something we have set incorrectly in the device xml. > > In order to debug this problem, we have a correct xml capture from a Windows > Media Center which does work with the Xbox. We realised from this, that we > could not make our ContentDirectory "look like" the MS media center, because > the device xml/service/event URLs are machine generated, and cannot be > prefixed by the ID field. Can you post the XML section that you are referring to of the captured XML? > > I don't actually think this is the problem, but I was wondering why the id > field is ignored, rather than being prefixed, since the method: > > private static void buildDevice(String id,Device parent, ServiceReference sr) > actually contains the line: > > devUPnP.setLocation(id+"/gen-desc.xml"); > > ... But the calling function only passes an empty String as id. Looking at the code the id should never be empty, because the function is called as follow: String localId = new StringBuffer(id).append("/device/").append(i).toString(); buildDevice(localId,devUPnP,aux[0]); and as you can see the localId can't be an empty String. BTW, inspecting again the code it seems to me that either the line: dd.setDescriptionURI(id+"/gen-des devUPnP.setLocation(id+"/gen-desc.xml"); inside the method buildDevice should be removed. I can't perform any test now so if you want to remove those line from the method and check if something changes. Ciao, Stefano "Kismet" Lenzi