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
- WindowsIPAddress.cs
- ComboBoxRenderer.cs
- ResourceDictionaryCollection.cs
- RuntimeArgument.cs
- HandoffBehavior.cs
- PerformanceCounter.cs
- FlowDocumentFormatter.cs
- Padding.cs
- StylusPointPropertyId.cs
- TimeSpanValidatorAttribute.cs
- odbcmetadatafactory.cs
- EtwTrace.cs
- SearchForVirtualItemEventArgs.cs
- File.cs
- CollectionConverter.cs
- FillErrorEventArgs.cs
- AnimationClockResource.cs
- InputBinding.cs
- SmtpNetworkElement.cs
- UpdateManifestForBrowserApplication.cs
- Message.cs
- BitmapData.cs
- UnionCodeGroup.cs
- SwitchLevelAttribute.cs
- TransformPatternIdentifiers.cs
- CatalogPartChrome.cs
- latinshape.cs
- IndicFontClient.cs
- InkPresenterAutomationPeer.cs
- BufferedGraphics.cs
- ManipulationStartingEventArgs.cs
- GeometryGroup.cs
- EdmFunctionAttribute.cs
- QilNode.cs
- StylusDownEventArgs.cs
- OleStrCAMarshaler.cs
- StorageConditionPropertyMapping.cs
- SuppressMergeCheckAttribute.cs
- ChildDocumentBlock.cs
- SHA1.cs
- NullableConverter.cs
- AccessorTable.cs
- Content.cs
- ScrollItemProviderWrapper.cs
- PerformanceCounterManager.cs
- Composition.cs
- MemberJoinTreeNode.cs
- HtmlDocument.cs
- PropertyDescriptorCollection.cs
- Literal.cs
- MethodBuilderInstantiation.cs
- SqlInternalConnectionSmi.cs
- MethodExpr.cs
- HandleCollector.cs
- RelatedCurrencyManager.cs
- ToolBar.cs
- ChannelProtectionRequirements.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- ObjectNotFoundException.cs
- ToolStripPanelRenderEventArgs.cs
- DataViewListener.cs
- GenerateScriptTypeAttribute.cs
- PropertyGridEditorPart.cs
- TypeGeneratedEventArgs.cs
- HostVisual.cs
- List.cs
- APCustomTypeDescriptor.cs
- SizeIndependentAnimationStorage.cs
- SerializerProvider.cs
- ConnectionStringSettings.cs
- backend.cs
- X509Chain.cs
- Timer.cs
- Animatable.cs
- RegularExpressionValidator.cs
- SizeConverter.cs
- COM2PropertyDescriptor.cs
- Tablet.cs
- DataContractSerializerFaultFormatter.cs
- Parameter.cs
- EditingCoordinator.cs
- ReadOnlyCollectionBase.cs
- StackOverflowException.cs
- XPathScanner.cs
- ServiceInfo.cs
- SurrogateEncoder.cs
- X509UI.cs
- BindingListCollectionView.cs
- PageParserFilter.cs
- DefaultTypeArgumentAttribute.cs
- EntityObject.cs
- TemplateParser.cs
- MultiPartWriter.cs
- PageAction.cs
- DragDrop.cs
- StrokeCollectionDefaultValueFactory.cs
- ImageSourceConverter.cs
- InertiaRotationBehavior.cs
- ComplexPropertyEntry.cs
- TypeValidationEventArgs.cs