XmlHelper.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / XmlHelper.cs / 1 / XmlHelper.cs

                            //------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------

namespace System.IdentityModel 
{
    using System.IO; 
    using System.Text; 
    using System.Xml;
 
    static class XmlHelper
    {
        internal static string GetWhiteSpace(XmlReader reader)
        { 
            string s = null;
            StringBuilder sb = null; 
            while (reader.NodeType == XmlNodeType.Whitespace || reader.NodeType == XmlNodeType.SignificantWhitespace) 
            {
                if (sb != null) 
                {
                    sb.Append(reader.Value);
                }
                else if (s != null) 
                {
                    sb = new StringBuilder(s); 
                    sb.Append(reader.Value); 
                    s = null;
                } 
                else
                {
                    s = reader.Value;
                } 
                if (!reader.Read())
                { 
                    break; 
                }
            } 
            return sb != null ? sb.ToString() : s;
        }

        internal static void OnRequiredAttributeMissing(string attrName, string elementName) 
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new XmlException(SR.GetString(SR.RequiredAttributeMissing, attrName, elementName))); 
        } 

        internal static string ReadEmptyElementAndRequiredAttribute(XmlDictionaryReader reader, 
            XmlDictionaryString name, XmlDictionaryString namespaceUri, XmlDictionaryString attributeName,
            out string prefix)
        {
            reader.MoveToStartElement(name, namespaceUri); 
            prefix = reader.Prefix;
            bool isEmptyElement = reader.IsEmptyElement; 
            string value = reader.GetAttribute(attributeName, null); 
            if (value == null)
            { 
                OnRequiredAttributeMissing(attributeName.Value, null);
            }
            reader.Read();
 
            if (!isEmptyElement)
            { 
                reader.ReadEndElement(); 
            }
            return value; 
        }

        internal static string ReadTextElementAsTrimmedString(XmlElement element)
        { 
            if (element == null)
            { 
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("element"); 
            }
 
            XmlReader reader = new XmlNodeReader(element);
            reader.MoveToContent();
            return XmlUtil.Trim(reader.ReadElementContentAsString());
        } 

    } 
 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK