internal void ExpandEntityReference(XmlEntityReference eref)
        {
            this.doc = eref.OwnerDocument;
            bool isLoading = this.doc.IsLoading;
            this.doc.IsLoading = true;
            switch (eref.Name)
            {
                case "lt":
                    eref.AppendChildForLoad(this.doc.CreateTextNode("<"), this.doc);
                    this.doc.IsLoading = isLoading;
                    return;

                case "gt":
                    eref.AppendChildForLoad(this.doc.CreateTextNode(">"), this.doc);
                    this.doc.IsLoading = isLoading;
                    return;

                case "amp":
                    eref.AppendChildForLoad(this.doc.CreateTextNode("&"), this.doc);
                    this.doc.IsLoading = isLoading;
                    return;

                case "apos":
                    eref.AppendChildForLoad(this.doc.CreateTextNode("'"), this.doc);
                    this.doc.IsLoading = isLoading;
                    return;

                case "quot":
                    eref.AppendChildForLoad(this.doc.CreateTextNode("\""), this.doc);
                    this.doc.IsLoading = isLoading;
                    return;
            }
            foreach (XmlEntity entity in this.doc.Entities)
            {
                if (Ref.Equal(entity.Name, eref.Name))
                {
                    this.ParsePartialContent(eref, this.EntitizeName(eref.Name), XmlNodeType.EntityReference);
                    return;
                }
            }
            if (!this.doc.ActualLoadingStatus)
            {
                eref.AppendChildForLoad(this.doc.CreateTextNode(""), this.doc);
                this.doc.IsLoading = isLoading;
            }
            else
            {
                this.doc.IsLoading = isLoading;
                throw new XmlException("Xml_UndeclaredParEntity", eref.Name);
            }
        }
Esempio n. 2
0
        //The function is called when expanding the entity ref. ( inside XmlEntityReference.SetParent )
        internal void ExpandEntityReference(XmlEntityReference eref)
        {
            //when the ent ref is not associated w/ an entity, append an empty string text node as child
            _doc = eref.OwnerDocument;
            bool bOrigLoadingState = _doc.IsLoading;

            _doc.IsLoading = true;
            switch (eref.Name)
            {
            case "lt":
                eref.AppendChildForLoad(_doc.CreateTextNode("<"), _doc);
                _doc.IsLoading = bOrigLoadingState;
                return;

            case "gt":
                eref.AppendChildForLoad(_doc.CreateTextNode(">"), _doc);
                _doc.IsLoading = bOrigLoadingState;
                return;

            case "amp":
                eref.AppendChildForLoad(_doc.CreateTextNode("&"), _doc);
                _doc.IsLoading = bOrigLoadingState;
                return;

            case "apos":
                eref.AppendChildForLoad(_doc.CreateTextNode("'"), _doc);
                _doc.IsLoading = bOrigLoadingState;
                return;

            case "quot":
                eref.AppendChildForLoad(_doc.CreateTextNode("\""), _doc);
                _doc.IsLoading = bOrigLoadingState;
                return;
            }

            XmlNamedNodeMap entities = _doc.Entities;

            foreach (XmlEntity ent in entities)
            {
                if (Ref.Equal(ent.Name, eref.Name))
                {
                    ParsePartialContent(eref, EntitizeName(eref.Name), XmlNodeType.EntityReference);
                    return;
                }
            }
            //no fit so far
            if (!(_doc.ActualLoadingStatus))
            {
                eref.AppendChildForLoad(_doc.CreateTextNode(""), _doc);
                _doc.IsLoading = bOrigLoadingState;
            }
            else
            {
                _doc.IsLoading = bOrigLoadingState;
                throw new XmlException(SR.Format(SR.Xml_UndeclaredParEntity, eref.Name));
            }
        }
Esempio n. 3
0
        internal void ExpandEntityReference(XmlEntityReference eref)
        {
            this.doc = eref.OwnerDocument;
            bool isLoading = this.doc.IsLoading;

            this.doc.IsLoading = true;
            switch (eref.Name)
            {
            case "lt":
                eref.AppendChildForLoad(this.doc.CreateTextNode("<"), this.doc);
                this.doc.IsLoading = isLoading;
                return;

            case "gt":
                eref.AppendChildForLoad(this.doc.CreateTextNode(">"), this.doc);
                this.doc.IsLoading = isLoading;
                return;

            case "amp":
                eref.AppendChildForLoad(this.doc.CreateTextNode("&"), this.doc);
                this.doc.IsLoading = isLoading;
                return;

            case "apos":
                eref.AppendChildForLoad(this.doc.CreateTextNode("'"), this.doc);
                this.doc.IsLoading = isLoading;
                return;

            case "quot":
                eref.AppendChildForLoad(this.doc.CreateTextNode("\""), this.doc);
                this.doc.IsLoading = isLoading;
                return;
            }
            foreach (XmlEntity entity in this.doc.Entities)
            {
                if (Ref.Equal(entity.Name, eref.Name))
                {
                    this.ParsePartialContent(eref, this.EntitizeName(eref.Name), XmlNodeType.EntityReference);
                    return;
                }
            }
            if (!this.doc.ActualLoadingStatus)
            {
                eref.AppendChildForLoad(this.doc.CreateTextNode(""), this.doc);
                this.doc.IsLoading = isLoading;
            }
            else
            {
                this.doc.IsLoading = isLoading;
                throw new XmlException("Xml_UndeclaredParEntity", eref.Name);
            }
        }
Esempio n. 4
0
        //The function is called when expanding the entity ref. ( inside XmlEntityReference.SetParent )
        internal void ExpandEntityReference(XmlEntityReference eref)
        {
            //when the ent ref is not associated w/ an entity, append an empty string text node as child
            _doc = eref.OwnerDocument;
            bool bOrigLoadingState = _doc.IsLoading;
            _doc.IsLoading = true;
            switch (eref.Name)
            {
                case "lt":
                    eref.AppendChildForLoad(_doc.CreateTextNode("<"), _doc);
                    _doc.IsLoading = bOrigLoadingState;
                    return;
                case "gt":
                    eref.AppendChildForLoad(_doc.CreateTextNode(">"), _doc);
                    _doc.IsLoading = bOrigLoadingState;
                    return;
                case "amp":
                    eref.AppendChildForLoad(_doc.CreateTextNode("&"), _doc);
                    _doc.IsLoading = bOrigLoadingState;
                    return;
                case "apos":
                    eref.AppendChildForLoad(_doc.CreateTextNode("'"), _doc);
                    _doc.IsLoading = bOrigLoadingState;
                    return;
                case "quot":
                    eref.AppendChildForLoad(_doc.CreateTextNode("\""), _doc);
                    _doc.IsLoading = bOrigLoadingState;
                    return;
            }

            XmlNamedNodeMap entities = _doc.Entities;
            foreach (XmlEntity ent in entities)
            {
                if (Ref.Equal(ent.Name, eref.Name))
                {
                    ParsePartialContent(eref, EntitizeName(eref.Name), XmlNodeType.EntityReference);
                    return;
                }
            }
            //no fit so far
            if (!(_doc.ActualLoadingStatus))
            {
                eref.AppendChildForLoad(_doc.CreateTextNode(""), _doc);
                _doc.IsLoading = bOrigLoadingState;
            }
            else
            {
                _doc.IsLoading = bOrigLoadingState;
                throw new XmlException(SR.Format(SR.Xml_UndeclaredParEntity, eref.Name));
            }
        }