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
- SrgsText.cs
- WebGetAttribute.cs
- CustomAttributeSerializer.cs
- XmlTextAttribute.cs
- ScalarOps.cs
- HtmlShimManager.cs
- SID.cs
- ObjectDataSourceFilteringEventArgs.cs
- SoundPlayerAction.cs
- IdnElement.cs
- ReadingWritingEntityEventArgs.cs
- RegexGroup.cs
- IDispatchConstantAttribute.cs
- TextEditorLists.cs
- ZipIOCentralDirectoryFileHeader.cs
- HyperlinkAutomationPeer.cs
- BaseProcessor.cs
- ServiceOperationViewControl.cs
- CaseExpr.cs
- PtsPage.cs
- BlurBitmapEffect.cs
- QueryExpr.cs
- SQLDouble.cs
- MSAAEventDispatcher.cs
- PrintPreviewDialog.cs
- CodeIndexerExpression.cs
- GridPattern.cs
- URLIdentityPermission.cs
- FormatException.cs
- SpAudioStreamWrapper.cs
- QilFactory.cs
- ComponentTray.cs
- RequestDescription.cs
- DesignerMetadata.cs
- DCSafeHandle.cs
- SizeAnimationClockResource.cs
- PipeStream.cs
- SqlConnectionManager.cs
- StateDesigner.LayoutSelectionGlyph.cs
- DetailsViewRowCollection.cs
- LineVisual.cs
- ToolZone.cs
- PointCollection.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- CLSCompliantAttribute.cs
- BuildProvider.cs
- InputBinding.cs
- ExitEventArgs.cs
- MediaContextNotificationWindow.cs
- HtmlValidatorAdapter.cs
- DisplayInformation.cs
- QilDataSource.cs
- CodeIdentifier.cs
- RuleDefinitions.cs
- XmlPreloadedResolver.cs
- Part.cs
- _OverlappedAsyncResult.cs
- HtmlTitle.cs
- DBConnectionString.cs
- UrlMappingCollection.cs
- figurelength.cs
- SpeechSeg.cs
- ProvideValueServiceProvider.cs
- DecimalConstantAttribute.cs
- PathTooLongException.cs
- ItemMap.cs
- Vector3dCollection.cs
- Events.cs
- MouseCaptureWithinProperty.cs
- Point3D.cs
- BamlWriter.cs
- AttributeProviderAttribute.cs
- XmlAttribute.cs
- SmtpClient.cs
- SpeechUI.cs
- SqlFlattener.cs
- GZipDecoder.cs
- CheckBox.cs
- UrlAuthFailedErrorFormatter.cs
- DBAsyncResult.cs
- ExternalException.cs
- Profiler.cs
- PermissionRequestEvidence.cs
- PageBuildProvider.cs
- OperationAbortedException.cs
- ParameterEditorUserControl.cs
- WebConfigurationFileMap.cs
- EntityDataSourceDataSelection.cs
- AdapterUtil.cs
- AlignmentXValidation.cs
- DeploymentSection.cs
- AuthorizationSection.cs
- ServiceContractGenerator.cs
- GenericTextProperties.cs
- InheritedPropertyDescriptor.cs
- DataSpaceManager.cs
- RangeValueProviderWrapper.cs
- TypeBuilder.cs
- NamedPipeTransportSecurityElement.cs
- TextAdaptor.cs