| File: System\Xml\Xsl\QIL\WhitespaceRule.cs | Web Access |
| Project: src\runtime\src\libraries\System.Private.Xml\src\System.Private.Xml.csproj (System.Private.Xml) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.IO; using System.Xml.Xsl.Runtime; namespace System.Xml.Xsl.Qil { /// <summary> /// Data structure for storing whitespace rules generated by xsl:strip-space and xsl:preserve-space /// </summary> internal class WhitespaceRule { private string? _localName; private string? _namespaceName; private bool _preserveSpace; /// <summary> /// Allow derived classes to construct empty whitespace rule. /// </summary> protected WhitespaceRule() { } /// <summary> /// Construct new whitespace rule. /// </summary> public WhitespaceRule(string? localName, string? namespaceName, bool preserveSpace) { Init(localName, namespaceName, preserveSpace); } /// <summary> /// Initialize whitespace rule after it's been constructed. /// </summary> protected void Init(string? localName, string? namespaceName, bool preserveSpace) { _localName = localName; _namespaceName = namespaceName; _preserveSpace = preserveSpace; } /// <summary> /// Local name of the element. /// </summary> public string? LocalName { get { return _localName; } set { _localName = value; } } /// <summary> /// Namespace name (uri) of the element. /// </summary> public string? NamespaceName { get { return _namespaceName; } set { _namespaceName = value; } } /// <summary> /// True, if this element is whitespace-preserving. /// False, if this element is whitespace-stripping. /// </summary> public bool PreserveSpace { get { return _preserveSpace; } } /// <summary> /// Serialize the object to BinaryWriter. /// </summary> public void GetObjectData(XmlQueryDataWriter writer) { Debug.Assert(this.GetType() == typeof(WhitespaceRule), "Serialization of WhitespaceRule subclasses is not implemented"); // string localName; writer.WriteStringQ(_localName); // string namespaceName; writer.WriteStringQ(_namespaceName); // bool preserveSpace; writer.Write(_preserveSpace); } /// <summary> /// Deserialize the object from BinaryReader. /// </summary> public WhitespaceRule(XmlQueryDataReader reader) { // string localName; _localName = reader.ReadStringQ(); // string namespaceName; _namespaceName = reader.ReadStringQ(); // bool preserveSpace; _preserveSpace = reader.ReadBoolean(); } } }