public static UpnpServiceDescriptionInfo FromXmlScpdNode(XElement aScpdNode) { var instance = new UpnpServiceDescriptionInfo(); instance.SpecVersion = Version.FromServiceXmlVersionElement(aScpdNode.Element(UpnpServiceXml.SpecVersionElement)); var actionList = new List <UpnpServiceActionInfo>(); instance.Actions = actionList; var variableList = new List <UpnpServiceStateVariableInfo>(); instance.StateVariables = variableList; var actionListNode = aScpdNode.Element(UpnpServiceXml.ActionListElement); if (actionListNode != null) { foreach (var actionNode in actionListNode.Elements(UpnpServiceXml.ActionElement)) { actionList.Add(UpnpServiceActionInfo.FromXmlActionNode(actionNode)); } } var variableListNode = aScpdNode.Element(UpnpServiceXml.ServiceStateTableElement); if (variableListNode != null) { foreach (var variableNode in variableListNode.Elements(UpnpServiceXml.StateVariableElement)) { variableList.Add(UpnpServiceStateVariableInfo.FromXmlVariableNode(variableNode)); } } return(instance); }
public static UpnpServiceInfo FromXmlServiceNode(XElement aServiceNode, Uri aDocUri, IHttpFetcher aFetcher) { var instance = new UpnpServiceInfo(); foreach (var item in aServiceNode.Elements()) { if (item.Name == UpnpDeviceXml.ServiceTypeElement) { instance.ServiceType = item.Value; } if (item.Name == UpnpDeviceXml.ServiceIdElement) { instance.ServiceId = item.Value; } if (item.Name == UpnpDeviceXml.SCPDURLElement) { instance.SCPDURL = item.Value; Uri absoluteUri; if (Uri.TryCreate(aDocUri, instance.SCPDURL, out absoluteUri)) { instance.DescriptionXml = aFetcher.SynchronousGetRequest(absoluteUri); var descriptionDoc = XDocument.Parse(instance.DescriptionXml); instance.Description = UpnpServiceDescriptionInfo.FromXmlScpdNode(descriptionDoc.Root); } } if (item.Name == UpnpDeviceXml.ControlURLElement) { instance.ControlURL = item.Value; } if (item.Name == UpnpDeviceXml.EventSubURLElement) { instance.EventSubURL = item.Value; } } return(instance); }
public static UpnpServiceDescriptionInfo FromXmlScpdNode(XElement aScpdNode) { var instance = new UpnpServiceDescriptionInfo(); instance.SpecVersion = Version.FromServiceXmlVersionElement(aScpdNode.Element(UpnpServiceXml.SpecVersionElement)); var actionList = new List<UpnpServiceActionInfo>(); instance.Actions = actionList; var variableList = new List<UpnpServiceStateVariableInfo>(); instance.StateVariables = variableList; var actionListNode = aScpdNode.Element(UpnpServiceXml.ActionListElement); if (actionListNode != null) { foreach (var actionNode in actionListNode.Elements(UpnpServiceXml.ActionElement)) { actionList.Add(UpnpServiceActionInfo.FromXmlActionNode(actionNode)); } } var variableListNode = aScpdNode.Element(UpnpServiceXml.ServiceStateTableElement); if (variableListNode != null) { foreach (var variableNode in variableListNode.Elements(UpnpServiceXml.StateVariableElement)) { variableList.Add(UpnpServiceStateVariableInfo.FromXmlVariableNode(variableNode)); } } return instance; }