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 / ValueOfAction.cs / 1 / 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, Keywords.s_Select); CheckEmpty(compiler); } internal override bool CompileAttribute(Compiler compiler) { string name = compiler.Input.LocalName; string value = compiler.Input.Value; if (Keywords.Equals(name, compiler.Atoms.Select)) { this.selectKey = compiler.AddQuery(value); } else if (Keywords.Equals(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, Keywords.s_Select); CheckEmpty(compiler); } internal override bool CompileAttribute(Compiler compiler) { string name = compiler.Input.LocalName; string value = compiler.Input.Value; if (Keywords.Equals(name, compiler.Atoms.Select)) { this.selectKey = compiler.AddQuery(value); } else if (Keywords.Equals(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
- ValidationRuleCollection.cs
- IndependentAnimationStorage.cs
- StdValidatorsAndConverters.cs
- XmlArrayItemAttribute.cs
- PrePostDescendentsWalker.cs
- PeerHopCountAttribute.cs
- XMLSyntaxException.cs
- GlobalizationAssembly.cs
- LoginView.cs
- IdentityReference.cs
- PlacementWorkspace.cs
- StorageBasedPackageProperties.cs
- BaseParagraph.cs
- Encoder.cs
- ErrorRuntimeConfig.cs
- EventDescriptor.cs
- MergeFailedEvent.cs
- GeometryModel3D.cs
- Ops.cs
- SqlProviderManifest.cs
- FormsAuthenticationTicket.cs
- MatchingStyle.cs
- SizeAnimationUsingKeyFrames.cs
- AttachedPropertyMethodSelector.cs
- Vector3DCollectionValueSerializer.cs
- LayoutEvent.cs
- PointCollection.cs
- SocketCache.cs
- GenericParameterDataContract.cs
- GraphicsContainer.cs
- HelpOperationInvoker.cs
- IPCCacheManager.cs
- HostingEnvironmentSection.cs
- WindowsFormsSynchronizationContext.cs
- HatchBrush.cs
- EdmScalarPropertyAttribute.cs
- LineGeometry.cs
- Variant.cs
- __ComObject.cs
- WorkflowRuntimeServiceElementCollection.cs
- translator.cs
- PermissionRequestEvidence.cs
- TempFiles.cs
- Point4D.cs
- FormsAuthenticationUserCollection.cs
- PartDesigner.cs
- XmlUtf8RawTextWriter.cs
- RemoteWebConfigurationHostServer.cs
- ProgressBar.cs
- PresentationTraceSources.cs
- ErrorStyle.cs
- HtmlControl.cs
- BaseValidator.cs
- ClientBuildManager.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- StringInfo.cs
- JsonReaderDelegator.cs
- Int32AnimationBase.cs
- SwitchElementsCollection.cs
- SafeProcessHandle.cs
- SoapServerMessage.cs
- IntSecurity.cs
- InvokeWebServiceDesigner.cs
- EntityDataSourceDataSelectionPanel.designer.cs
- BaseInfoTable.cs
- SyndicationContent.cs
- SelectionHighlightInfo.cs
- DateTime.cs
- PersonalizationProviderCollection.cs
- PlainXmlSerializer.cs
- InstanceData.cs
- MemoryPressure.cs
- RotateTransform3D.cs
- OperationAbortedException.cs
- GroupStyle.cs
- HostedBindingBehavior.cs
- Boolean.cs
- QueueException.cs
- Expression.cs
- DomainUpDown.cs
- WebPartConnectionsCancelEventArgs.cs
- ConsoleEntryPoint.cs
- DomainConstraint.cs
- ResourceReader.cs
- MultilineStringConverter.cs
- ReceiveContent.cs
- MatrixStack.cs
- Crc32.cs
- PackagingUtilities.cs
- SelectionRangeConverter.cs
- ObjectItemCollection.cs
- ScrollProperties.cs
- Stylus.cs
- AssemblyAttributesGoHere.cs
- BitConverter.cs
- IUnknownConstantAttribute.cs
- _ServiceNameStore.cs
- StoreAnnotationsMap.cs
- MediaElementAutomationPeer.cs
- ConnectionStringsExpressionBuilder.cs