Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / ValueOfAction.cs / 1305376 / ValueOfAction.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.Xml; using System.Xml.XPath; internal class ValueOfAction : CompiledAction { private const int ResultStored = 2; private int selectKey = Compiler.InvalidQueryKey; private bool disableOutputEscaping; private static Action s_BuiltInRule = new BuiltInRuleTextAction(); internal static Action BuiltInRule() { Debug.Assert(s_BuiltInRule != null); return s_BuiltInRule; } internal override void Compile(Compiler compiler) { CompileAttributes(compiler); CheckRequiredAttribute(compiler, selectKey != Compiler.InvalidQueryKey, "select"); CheckEmpty(compiler); } internal override bool CompileAttribute(Compiler compiler) { string name = compiler.Input.LocalName; string value = compiler.Input.Value; if (Ref.Equal(name, compiler.Atoms.Select)) { this.selectKey = compiler.AddQuery(value); } else if (Ref.Equal(name, compiler.Atoms.DisableOutputEscaping)) { this.disableOutputEscaping = compiler.GetYesNo(value); } else { return false; } return true; } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch (frame.State) { case Initialized: Debug.Assert(frame != null); Debug.Assert(frame.NodeSet != null); string value = processor.ValueOf(frame, this.selectKey); if (processor.TextEvent(value, disableOutputEscaping)) { frame.Finished(); } else { frame.StoredOutput = value; frame.State = ResultStored; } break; case ResultStored: Debug.Assert(frame.StoredOutput != null); processor.TextEvent(frame.StoredOutput); frame.Finished(); break; default: Debug.Fail("Invalid ValueOfAction execution state"); break; } } } internal class BuiltInRuleTextAction : Action { private const int ResultStored = 2; internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch (frame.State) { case Initialized: Debug.Assert(frame != null); Debug.Assert(frame.NodeSet != null); string value = processor.ValueOf(frame.NodeSet.Current); if (processor.TextEvent(value, /*disableOutputEscaping:*/false)) { frame.Finished(); } else { frame.StoredOutput = value; frame.State = ResultStored; } break; case ResultStored: Debug.Assert(frame.StoredOutput != null); processor.TextEvent(frame.StoredOutput); frame.Finished(); break; default: Debug.Fail("Invalid BuiltInRuleTextAction execution state"); break; } } } } // 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.Xml; using System.Xml.XPath; internal class ValueOfAction : CompiledAction { private const int ResultStored = 2; private int selectKey = Compiler.InvalidQueryKey; private bool disableOutputEscaping; private static Action s_BuiltInRule = new BuiltInRuleTextAction(); internal static Action BuiltInRule() { Debug.Assert(s_BuiltInRule != null); return s_BuiltInRule; } internal override void Compile(Compiler compiler) { CompileAttributes(compiler); CheckRequiredAttribute(compiler, selectKey != Compiler.InvalidQueryKey, "select"); CheckEmpty(compiler); } internal override bool CompileAttribute(Compiler compiler) { string name = compiler.Input.LocalName; string value = compiler.Input.Value; if (Ref.Equal(name, compiler.Atoms.Select)) { this.selectKey = compiler.AddQuery(value); } else if (Ref.Equal(name, compiler.Atoms.DisableOutputEscaping)) { this.disableOutputEscaping = compiler.GetYesNo(value); } else { return false; } return true; } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch (frame.State) { case Initialized: Debug.Assert(frame != null); Debug.Assert(frame.NodeSet != null); string value = processor.ValueOf(frame, this.selectKey); if (processor.TextEvent(value, disableOutputEscaping)) { frame.Finished(); } else { frame.StoredOutput = value; frame.State = ResultStored; } break; case ResultStored: Debug.Assert(frame.StoredOutput != null); processor.TextEvent(frame.StoredOutput); frame.Finished(); break; default: Debug.Fail("Invalid ValueOfAction execution state"); break; } } } internal class BuiltInRuleTextAction : Action { private const int ResultStored = 2; internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch (frame.State) { case Initialized: Debug.Assert(frame != null); Debug.Assert(frame.NodeSet != null); string value = processor.ValueOf(frame.NodeSet.Current); if (processor.TextEvent(value, /*disableOutputEscaping:*/false)) { frame.Finished(); } else { frame.StoredOutput = value; frame.State = ResultStored; } break; case ResultStored: Debug.Assert(frame.StoredOutput != null); processor.TextEvent(frame.StoredOutput); frame.Finished(); break; default: Debug.Fail("Invalid BuiltInRuleTextAction execution state"); break; } } } } // 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
- InvalidWMPVersionException.cs
- AliasedSlot.cs
- TextShapeableCharacters.cs
- FrameworkObject.cs
- XmlDataSourceView.cs
- TreeNodeBindingCollection.cs
- HttpContextWrapper.cs
- ImageField.cs
- DocumentReference.cs
- infer.cs
- CultureInfo.cs
- ObservableDictionary.cs
- DocumentGrid.cs
- Message.cs
- EditorPart.cs
- WebPartManagerInternals.cs
- ToolStripManager.cs
- ProtocolsConfiguration.cs
- path.cs
- HMACMD5.cs
- LinqDataSourceStatusEventArgs.cs
- WebPartRestoreVerb.cs
- ToolStripArrowRenderEventArgs.cs
- ExpressionBindings.cs
- webproxy.cs
- UIElementIsland.cs
- DatatypeImplementation.cs
- MediaEntryAttribute.cs
- EdmSchemaError.cs
- WebSysDefaultValueAttribute.cs
- AtomEntry.cs
- PreservationFileReader.cs
- FrugalMap.cs
- WebPartMinimizeVerb.cs
- AuditLogLocation.cs
- NativeMethods.cs
- ProxyHelper.cs
- Aes.cs
- UpdatePanelControlTrigger.cs
- SystemKeyConverter.cs
- TabControlToolboxItem.cs
- TextRunProperties.cs
- DefaultValueTypeConverter.cs
- DeviceFiltersSection.cs
- PeerCollaborationPermission.cs
- DataKey.cs
- ExecutedRoutedEventArgs.cs
- Int16.cs
- AnyReturnReader.cs
- WinCategoryAttribute.cs
- ClientSideQueueItem.cs
- GeometryCombineModeValidation.cs
- SqlDataSourceConfigureSortForm.cs
- SendMailErrorEventArgs.cs
- MetafileHeaderWmf.cs
- DbProviderFactory.cs
- _emptywebproxy.cs
- BufferedReadStream.cs
- DeferredTextReference.cs
- ConfigurationStrings.cs
- PerformanceCounterPermissionAttribute.cs
- InvalidDataContractException.cs
- AppDomainProtocolHandler.cs
- HighlightVisual.cs
- Evidence.cs
- PersonalizationProviderHelper.cs
- WeakHashtable.cs
- DictionaryBase.cs
- Polygon.cs
- ContentValidator.cs
- TCEAdapterGenerator.cs
- ExecutionEngineException.cs
- TextWriter.cs
- HttpCacheVary.cs
- WorkerRequest.cs
- GlyphTypeface.cs
- WindowsIPAddress.cs
- ParseHttpDate.cs
- JpegBitmapDecoder.cs
- SettingsSavedEventArgs.cs
- WebRequestModuleElement.cs
- Int32EqualityComparer.cs
- XmlSortKeyAccumulator.cs
- Page.cs
- DataGridColumnHeader.cs
- SHA384CryptoServiceProvider.cs
- Rfc2898DeriveBytes.cs
- SystemWebCachingSectionGroup.cs
- DivideByZeroException.cs
- TemplateBindingExpression.cs
- ColumnHeader.cs
- EntityContainerAssociationSetEnd.cs
- IDictionary.cs
- StandardCommands.cs
- ListDictionary.cs
- DiscreteKeyFrames.cs
- UserControlBuildProvider.cs
- CurrentChangingEventManager.cs
- TreeNodeCollection.cs
- Encoder.cs