536cd135cc
Former-commit-id: 5624ac747d633e885131e8349322922b6a59baaa
94 lines
3.2 KiB
C#
94 lines
3.2 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="WhitespaceRule.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
// <owner current="true" primary="true">Microsoft</owner>
|
|
// <owner current="false">Microsoft</owner>
|
|
//------------------------------------------------------------------------------
|
|
|
|
using System.Diagnostics;
|
|
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) {
|
|
this.localName = localName;
|
|
this.namespaceName = namespaceName;
|
|
this.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;
|
|
this.localName = reader.ReadStringQ();
|
|
// string namespaceName;
|
|
this.namespaceName = reader.ReadStringQ();
|
|
// bool preserveSpace;
|
|
this.preserveSpace = reader.ReadBoolean();
|
|
}
|
|
}
|
|
}
|