System.Data.SimpleType.ToNode C# (CSharp) Метод

ToNode() приватный Метод

private ToNode ( XmlDocument dc, Hashtable prefixes, bool inRemoting ) : XmlNode
dc System.Xml.XmlDocument
prefixes System.Collections.Hashtable
inRemoting bool
Результат System.Xml.XmlNode
        internal XmlNode ToNode(XmlDocument dc, Hashtable prefixes, bool inRemoting)
        {
            XmlElement typeNode = dc.CreateElement(Keywords.XSD_PREFIX, Keywords.XSD_SIMPLETYPE, Keywords.XSDNS);

            if (_name != null && _name.Length != 0)
            {
                // this is a global type
                typeNode.SetAttribute(Keywords.NAME, _name);
                if (inRemoting)
                {
                    typeNode.SetAttribute(Keywords.TARGETNAMESPACE, Keywords.MSDNS, Namespace);
                }
            }
            XmlElement type = dc.CreateElement(Keywords.XSD_PREFIX, Keywords.XSD_RESTRICTION, Keywords.XSDNS);

            if (!inRemoting)
            {
                if (_baseSimpleType != null)
                {
                    if (_baseSimpleType.Namespace != null && _baseSimpleType.Namespace.Length > 0)
                    {
                        string prefix = (prefixes != null) ? (string)prefixes[_baseSimpleType.Namespace] : null;
                        if (prefix != null)
                        {
                            type.SetAttribute(Keywords.BASE, (prefix + ":" + _baseSimpleType.Name));
                        }
                        else
                        {
                            type.SetAttribute(Keywords.BASE, _baseSimpleType.Name);
                        }
                    }
                    else
                    { // amirhmy
                        type.SetAttribute(Keywords.BASE, _baseSimpleType.Name);
                    }
                }
                else
                {
                    type.SetAttribute(Keywords.BASE, QualifiedName(_baseType)); // has to be xs:SomePrimitiveType
                }
            }
            else
            {
                type.SetAttribute(Keywords.BASE, (_baseSimpleType != null) ? _baseSimpleType.Name : QualifiedName(_baseType));
            }

            XmlElement constraint;
            if (_length >= 0)
            {
                constraint = dc.CreateElement(Keywords.XSD_PREFIX, Keywords.XSD_LENGTH, Keywords.XSDNS);
                constraint.SetAttribute(Keywords.VALUE, _length.ToString(CultureInfo.InvariantCulture));
                type.AppendChild(constraint);
            }
            if (_maxLength >= 0)
            {
                constraint = dc.CreateElement(Keywords.XSD_PREFIX, Keywords.XSD_MAXLENGTH, Keywords.XSDNS);
                constraint.SetAttribute(Keywords.VALUE, _maxLength.ToString(CultureInfo.InvariantCulture));
                type.AppendChild(constraint);
            }

            typeNode.AppendChild(type);
            return typeNode;
        }