System.Xml.Schema.Parser.LoadEntityReferenceInAttribute C# (CSharp) Method

LoadEntityReferenceInAttribute() private method

private LoadEntityReferenceInAttribute ( ) : XmlEntityReference
return System.Xml.XmlEntityReference
        private XmlEntityReference LoadEntityReferenceInAttribute()
        {
            Debug.Assert(_reader.NodeType == XmlNodeType.EntityReference);

            XmlEntityReference eref = _dummyDocument.CreateEntityReference(_reader.LocalName);
            if (!_reader.CanResolveEntity)
            {
                return eref;
            }
            _reader.ResolveEntity();

            while (_reader.ReadAttributeValue())
            {
                switch (_reader.NodeType)
                {
                    case XmlNodeType.Text:
                        eref.AppendChild(_dummyDocument.CreateTextNode(_reader.Value));
                        continue;
                    case XmlNodeType.EndEntity:
                        if (eref.ChildNodes.Count == 0)
                        {
                            eref.AppendChild(_dummyDocument.CreateTextNode(String.Empty));
                        }
                        return eref;
                    case XmlNodeType.EntityReference:
                        eref.AppendChild(LoadEntityReferenceInAttribute());
                        break;
                    default:
                        throw XmlLoader.UnexpectedNodeType(_reader.NodeType);
                }
            }

            return eref;
        }
    };