//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // // Microsoft // Microsoft //------------------------------------------------------------------------------ using System.Diagnostics; using System.IO; using System.Xml.Xsl.Runtime; namespace System.Xml.Xsl.Qil { /// /// Data structure for storing whitespace rules generated by xsl:strip-space and xsl:preserve-space /// internal class WhitespaceRule { private string localName; private string namespaceName; private bool preserveSpace; /// /// Allow derived classes to construct empty whitespace rule. /// protected WhitespaceRule() { } /// /// Construct new whitespace rule. /// public WhitespaceRule(string localName, string namespaceName, bool preserveSpace) { Init(localName, namespaceName, preserveSpace); } /// /// Initialize whitespace rule after it's been constructed. /// protected void Init(string localName, string namespaceName, bool preserveSpace) { this.localName = localName; this.namespaceName = namespaceName; this.preserveSpace = preserveSpace; } /// /// Local name of the element. /// public string LocalName { get { return localName; } set { localName = value; } } /// /// Namespace name (uri) of the element. /// public string NamespaceName { get { return namespaceName; } set { namespaceName = value; } } /// /// True, if this element is whitespace-preserving. /// False, if this element is whitespace-stripping. /// public bool PreserveSpace { get { return preserveSpace; } } /// /// Serialize the object to BinaryWriter. /// 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); } /// /// Deserialize the object from BinaryReader. /// public WhitespaceRule(XmlQueryDataReader reader) { // string localName; this.localName = reader.ReadStringQ(); // string namespaceName; this.namespaceName = reader.ReadStringQ(); // bool preserveSpace; this.preserveSpace = reader.ReadBoolean(); } } }