Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / BuilderInfo.cs / 1 / BuilderInfo.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml.Xsl.XsltOld { using Res = System.Xml.Utils.Res; using System; using System.Diagnostics; using System.Text; using System.Collections.Generic; using System.Xml; using System.Xml.XPath; internal class BuilderInfo { private string name; private string localName; private string namespaceURI; private string prefix; private XmlNodeType nodeType; private int depth; private bool isEmptyTag; internal string[] TextInfo = new string[4]; internal int TextInfoCount = 0; internal bool search; internal HtmlElementProps htmlProps; internal HtmlAttributeProps htmlAttrProps; internal BuilderInfo() { Initialize(string.Empty, string.Empty, string.Empty); } internal void Initialize(string prefix, string name, string nspace) { this.prefix = prefix; this.localName = name; this.namespaceURI = nspace; this.name = null; this.htmlProps = null; this.htmlAttrProps = null; this.TextInfoCount = 0; } internal void Initialize(BuilderInfo src) { this.prefix = src.Prefix; this.localName = src.LocalName; this.namespaceURI = src.NamespaceURI; this.name = null; this.depth = src.Depth; this.nodeType = src.NodeType; this.htmlProps = src.htmlProps; this.htmlAttrProps = src.htmlAttrProps; this.TextInfoCount = 0; EnsureTextInfoSize(src.TextInfoCount); src.TextInfo.CopyTo(this.TextInfo, 0); this.TextInfoCount = src.TextInfoCount; } void EnsureTextInfoSize(int newSize) { if (this.TextInfo.Length < newSize) { string[] newArr = new string[newSize * 2]; Array.Copy(this.TextInfo, newArr, this.TextInfoCount); this.TextInfo = newArr; } } internal BuilderInfo Clone() { BuilderInfo info = new BuilderInfo(); info.Initialize(this); Debug.Assert(info.NodeType != XmlNodeType.Text || XmlCharType.Instance.IsOnlyWhitespace(info.Value)); return info; } internal string Name { get { if (this.name == null) { string prefix = Prefix; string localName = LocalName; if (prefix != null && 0 < prefix.Length) { if (localName.Length > 0) { this.name = prefix + ":" + localName; } else { this.name = prefix; } } else { this.name = localName; } } return this.name; } } internal string LocalName { get { return this.localName; } set { this.localName = value; } } internal string NamespaceURI { get { return this.namespaceURI; } set { this.namespaceURI = value; } } internal string Prefix { get { return this.prefix; } set { this.prefix = value; } } // The true value of this object is a list of TextInfo // Value.get merges them together but discards each node's escape info // Value.set clears this object, and appends the new, single string internal string Value { get { switch (this.TextInfoCount) { case 0: return string.Empty; case 1: return this.TextInfo[0]; default : int size = 0; for (int i = 0; i < this.TextInfoCount; i++) { string ti = this.TextInfo[i]; if (ti == null) continue; // ignore disableEscaping size += ti.Length; } StringBuilder sb = new StringBuilder(size); for (int i = 0; i < this.TextInfoCount; i++) { string ti = this.TextInfo[i]; if (ti == null) continue; // ignore disableEscaping sb.Append(ti); } return sb.ToString(); } } set { this.TextInfoCount = 0; ValueAppend(value, /*disableEscaping:*/false); } } internal void ValueAppend(string s, bool disableEscaping) { if (s == null || s.Length == 0) { return; } EnsureTextInfoSize(this.TextInfoCount + (disableEscaping ? 2 : 1)); if (disableEscaping) { this.TextInfo[this.TextInfoCount ++] = null; } this.TextInfo[this.TextInfoCount++] = s; } internal XmlNodeType NodeType { get { return this.nodeType; } set { this.nodeType = value; } } internal int Depth { get { return this.depth; } set { this.depth = value; } } internal bool IsEmptyTag { get { return this.isEmptyTag; } set { this.isEmptyTag = value; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml.Xsl.XsltOld { using Res = System.Xml.Utils.Res; using System; using System.Diagnostics; using System.Text; using System.Collections.Generic; using System.Xml; using System.Xml.XPath; internal class BuilderInfo { private string name; private string localName; private string namespaceURI; private string prefix; private XmlNodeType nodeType; private int depth; private bool isEmptyTag; internal string[] TextInfo = new string[4]; internal int TextInfoCount = 0; internal bool search; internal HtmlElementProps htmlProps; internal HtmlAttributeProps htmlAttrProps; internal BuilderInfo() { Initialize(string.Empty, string.Empty, string.Empty); } internal void Initialize(string prefix, string name, string nspace) { this.prefix = prefix; this.localName = name; this.namespaceURI = nspace; this.name = null; this.htmlProps = null; this.htmlAttrProps = null; this.TextInfoCount = 0; } internal void Initialize(BuilderInfo src) { this.prefix = src.Prefix; this.localName = src.LocalName; this.namespaceURI = src.NamespaceURI; this.name = null; this.depth = src.Depth; this.nodeType = src.NodeType; this.htmlProps = src.htmlProps; this.htmlAttrProps = src.htmlAttrProps; this.TextInfoCount = 0; EnsureTextInfoSize(src.TextInfoCount); src.TextInfo.CopyTo(this.TextInfo, 0); this.TextInfoCount = src.TextInfoCount; } void EnsureTextInfoSize(int newSize) { if (this.TextInfo.Length < newSize) { string[] newArr = new string[newSize * 2]; Array.Copy(this.TextInfo, newArr, this.TextInfoCount); this.TextInfo = newArr; } } internal BuilderInfo Clone() { BuilderInfo info = new BuilderInfo(); info.Initialize(this); Debug.Assert(info.NodeType != XmlNodeType.Text || XmlCharType.Instance.IsOnlyWhitespace(info.Value)); return info; } internal string Name { get { if (this.name == null) { string prefix = Prefix; string localName = LocalName; if (prefix != null && 0 < prefix.Length) { if (localName.Length > 0) { this.name = prefix + ":" + localName; } else { this.name = prefix; } } else { this.name = localName; } } return this.name; } } internal string LocalName { get { return this.localName; } set { this.localName = value; } } internal string NamespaceURI { get { return this.namespaceURI; } set { this.namespaceURI = value; } } internal string Prefix { get { return this.prefix; } set { this.prefix = value; } } // The true value of this object is a list of TextInfo // Value.get merges them together but discards each node's escape info // Value.set clears this object, and appends the new, single string internal string Value { get { switch (this.TextInfoCount) { case 0: return string.Empty; case 1: return this.TextInfo[0]; default : int size = 0; for (int i = 0; i < this.TextInfoCount; i++) { string ti = this.TextInfo[i]; if (ti == null) continue; // ignore disableEscaping size += ti.Length; } StringBuilder sb = new StringBuilder(size); for (int i = 0; i < this.TextInfoCount; i++) { string ti = this.TextInfo[i]; if (ti == null) continue; // ignore disableEscaping sb.Append(ti); } return sb.ToString(); } } set { this.TextInfoCount = 0; ValueAppend(value, /*disableEscaping:*/false); } } internal void ValueAppend(string s, bool disableEscaping) { if (s == null || s.Length == 0) { return; } EnsureTextInfoSize(this.TextInfoCount + (disableEscaping ? 2 : 1)); if (disableEscaping) { this.TextInfo[this.TextInfoCount ++] = null; } this.TextInfo[this.TextInfoCount++] = s; } internal XmlNodeType NodeType { get { return this.nodeType; } set { this.nodeType = value; } } internal int Depth { get { return this.depth; } set { this.depth = value; } } internal bool IsEmptyTag { get { return this.isEmptyTag; } set { this.isEmptyTag = value; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ListBoxAutomationPeer.cs
- LocalizationComments.cs
- HtmlFormWrapper.cs
- DBCommandBuilder.cs
- ValueSerializer.cs
- ExtentCqlBlock.cs
- AutoSizeToolBoxItem.cs
- BypassElement.cs
- DesignerEventService.cs
- SubstitutionDesigner.cs
- ExtractedStateEntry.cs
- DependencyObject.cs
- RootBuilder.cs
- ResponseBodyWriter.cs
- InputScopeAttribute.cs
- TextWriter.cs
- PersonalizationStateInfoCollection.cs
- DataGridViewAccessibleObject.cs
- Literal.cs
- SiteMapNodeItemEventArgs.cs
- ToolStripSettings.cs
- IOException.cs
- GeometryCombineModeValidation.cs
- WindowsScroll.cs
- ExtensionFile.cs
- RectangleF.cs
- UnsafeNativeMethods.cs
- processwaithandle.cs
- SerializationSectionGroup.cs
- ArrayElementGridEntry.cs
- ToolbarAUtomationPeer.cs
- SpeechSynthesizer.cs
- XomlCompilerParameters.cs
- CharAnimationUsingKeyFrames.cs
- CaseInsensitiveHashCodeProvider.cs
- ToolStripDropDownClosingEventArgs.cs
- UmAlQuraCalendar.cs
- FieldNameLookup.cs
- PerformanceCounterManager.cs
- EntityUtil.cs
- MaxMessageSizeStream.cs
- LoginUtil.cs
- EventManager.cs
- configsystem.cs
- ObjectDataSourceStatusEventArgs.cs
- MouseEvent.cs
- SafeCryptoHandles.cs
- DependencyObject.cs
- Preprocessor.cs
- ConnectionManagementSection.cs
- WmlPhoneCallAdapter.cs
- ArithmeticLiteral.cs
- SmiXetterAccessMap.cs
- ErrorWrapper.cs
- VirtualDirectoryMapping.cs
- QualifierSet.cs
- VoiceInfo.cs
- XmlKeywords.cs
- ReadOnlyHierarchicalDataSourceView.cs
- NestedContainer.cs
- TextTreeUndo.cs
- ChtmlTextWriter.cs
- XmlILIndex.cs
- ResourceDescriptionAttribute.cs
- ResourceFallbackManager.cs
- AddInContractAttribute.cs
- MessageDecoder.cs
- ImageFormat.cs
- DelegatingConfigHost.cs
- HybridDictionary.cs
- HttpServerProtocol.cs
- EventLogPermissionEntry.cs
- ActivityDelegate.cs
- TdsParserStateObject.cs
- WebPartZoneCollection.cs
- AttributeAction.cs
- PeerInvitationResponse.cs
- RijndaelManaged.cs
- PropertyTabAttribute.cs
- UxThemeWrapper.cs
- StickyNoteHelper.cs
- XsdBuilder.cs
- TranslateTransform.cs
- LinqDataSourceContextEventArgs.cs
- X509ClientCertificateCredentialsElement.cs
- KernelTypeValidation.cs
- AstTree.cs
- XmlReflectionMember.cs
- CodeCommentStatement.cs
- SendKeys.cs
- TableProviderWrapper.cs
- COM2ExtendedBrowsingHandler.cs
- HtmlContainerControl.cs
- ClientFormsIdentity.cs
- BaseResourcesBuildProvider.cs
- AndMessageFilter.cs
- dtdvalidator.cs
- ASCIIEncoding.cs
- ErasingStroke.cs
- LineGeometry.cs