System.Xml.XmlTextReader.LookupNamespace C# (CSharp) Method

LookupNamespace() public method

public LookupNamespace ( String prefix ) : String
prefix String
return String
        public override String LookupNamespace(String prefix)
        {
            string ns = _impl.LookupNamespace(prefix);
            if (ns != null && ns.Length == 0)
            {
                ns = null;
            }
            return ns;
        }

Usage Example

        private void ParseStateVarXml(String evented, String multicasted, XmlTextReader XMLDoc)
        {
            //			if (XML=="")
            //			{
            //				return;
            //			}

            string ComplexType = "";
            string ComplexTypeNS = "";
            UPnPComplexType CT = null;
            DText P = new DText();
            P.ATTRMARK = ":";

            string minval = null;
            string maxval = null;
            string stepval = null;
            bool HasDef = false;

            string name = "";
            string DataType = "";
            string DefaultValue = null;
            ArrayList allowedValueList = new ArrayList();
            string LocalName = "";
            string lname2 = "";

            //			StringReader MyString = new StringReader(XML);
            //			XmlTextReader XMLDoc = new XmlTextReader(MyString);

            //			XMLDoc.Read();
            //			XMLDoc.MoveToContent();

            bool done = false;
            while (!done && XMLDoc.Read())
            {
                switch (XMLDoc.NodeType)
                {
                    case XmlNodeType.Element:
                        LocalName = XMLDoc.LocalName;
                        switch (XMLDoc.LocalName)
                        {
                            case "dataType":
                                if (XMLDoc.HasAttributes)
                                {
                                    for (int i = 0; i < XMLDoc.AttributeCount; i++)
                                    {
                                        XMLDoc.MoveToAttribute(i);
                                        if (XMLDoc.LocalName == "type")
                                        {
                                            P[0] = XMLDoc.Value;
                                            if (P.DCOUNT() == 1)
                                            {
                                                ComplexType = P[1];
                                            }
                                            else
                                            {
                                                ComplexType = P[2];
                                                ComplexTypeNS = P[1];
                                            }
                                            CT = (UPnPComplexType)ComplexTypeTable[ComplexType + ":" + XMLDoc.LookupNamespace(ComplexTypeNS)];
                                        }
                                    }
                                }
                                break;
                            case "allowedValueList":
                                bool done2 = false;

                                while (!done2 && XMLDoc.Read())
                                {
                                    switch (XMLDoc.NodeType)
                                    {
                                        case XmlNodeType.Element:
                                            lname2 = XMLDoc.LocalName;
                                            break;
                                        case XmlNodeType.EndElement:
                                            if (XMLDoc.LocalName == "allowedValueList")
                                            {
                                                done2 = true;
                                            }
                                            break;
                                        case XmlNodeType.Text:
                                            if (lname2 == "allowedValue")
                                            {
                                                allowedValueList.Add(XMLDoc.Value);
                                            }
                                            break;
                                    }
                                }
                                break;
                            case "allowedValueRange":
                                bool done3 = false;

                                while (!done3 && XMLDoc.Read())
                                {
                                    switch (XMLDoc.NodeType)
                                    {
                                        case XmlNodeType.Element:
                                            lname2 = XMLDoc.LocalName;
                                            break;
                                        case XmlNodeType.EndElement:
                                            if (XMLDoc.LocalName == "allowedValueRange")
                                            {
                                                done3 = true;
                                            }
                                            break;
                                        case XmlNodeType.Text:
                                            switch (lname2)
                                            {
                                                case "minimum":
                                                    minval = XMLDoc.Value;
                                                    break;
                                                case "maximum":
                                                    maxval = XMLDoc.Value;
                                                    break;
                                                case "step":
                                                    stepval = XMLDoc.Value;
                                                    break;
                                            }
                                            break;
                                    }
                                }
                                break;
                        }
                        break;
                    case XmlNodeType.EndElement:
                        if (XMLDoc.LocalName == "stateVariable")
                        {
                            done = true;
                        }
                        break;
                    case XmlNodeType.Text:
                        switch (LocalName)
                        {
                            case "name":
                                name = XMLDoc.Value.Trim();
                                break;
                            case "dataType":
                                DataType = XMLDoc.Value.Trim();
                                break;
                            case "defaultValue":
                                DefaultValue = XMLDoc.Value;
                                HasDef = true;
                                break;
                        }
                        break;
                }
            }

            UPnPStateVariable var;
            if (CT == null)
            {
                var = new UPnPStateVariable(name);
            }
            else
            {
                var = new UPnPStateVariable(name, CT);
            }
            var.ParentService = this;
            if (evented == "yes")
            {
                var.SendEvent = true;
            }
            if (multicasted == "yes")
            {
                var.MulticastEvent = true;
            }
            var.VarType = DataType;
            if (allowedValueList.Count > 0)
            {
                var.AllowedStringValues = (string[])allowedValueList.ToArray(typeof(string));
            }

            if (HasDef)
            {
                var.DefaultValue = UPnPService.CreateObjectInstance(var.GetNetType(), DefaultValue);
            }
            if ((minval != null) && (maxval != null))
            {
                Object stepobj = null;
                if (stepval != null)
                {
                    try
                    {
                        stepobj = UPnPService.CreateObjectInstance(var.GetNetType(), stepval);
                    }
                    catch (Exception)
                    {
                        stepobj = null;
                    }
                }

                object MIN;
                object MAX;

                try
                {
                    MIN = UPnPService.CreateObjectInstance(var.GetNetType(), minval);
                }
                catch (Exception)
                {
                    FieldInfo mi = var.GetNetType().GetField("MinValue");
                    MIN = mi.GetValue(null);
                }

                try
                {
                    MAX = UPnPService.CreateObjectInstance(var.GetNetType(), maxval);
                }
                catch (Exception)
                {
                    FieldInfo mi = var.GetNetType().GetField("MaxValue");
                    MAX = mi.GetValue(null);
                }

                var.SetRange(MIN,
                    MAX,
                    stepobj);
            }

            //StateVariables.Add(name,var);
            StateVariables[name] = var; // TempPatch Only

            /*
            IDictionaryEnumerator en = RemoteMethods.GetEnumerator();
            UPnPAction a;
            while(en.MoveNext())
            {
                a = (UPnPAction)en.Value;
                for(int x =0;x<a.ArgumentList.Length;++x)
                {
                    if (a.ArgumentList[x].RelatedStateVar.Name == name)
                    {
                        a.ArgumentList[x].RelatedStateVar.VarType = DataType;
                        a.ArgumentList[x].RelatedStateVar.AllowedStringValues = var.AllowedStringValues;
                        a.ArgumentList[x].RelatedStateVar.DefaultValue = DefaultValue;
                    }
                }
            }*/
        }
All Usage Examples Of System.Xml.XmlTextReader::LookupNamespace