Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- MultipleViewProviderWrapper.cs
- XmlUrlResolver.cs
- Location.cs
- WebPartEditorApplyVerb.cs
- Component.cs
- ListControl.cs
- TextEndOfParagraph.cs
- HostVisual.cs
- OdbcConnectionOpen.cs
- KnownBoxes.cs
- HttpCookie.cs
- _CookieModule.cs
- FunctionImportMapping.cs
- UniqueID.cs
- WebPartConnectionsCancelEventArgs.cs
- DynamicPhysicalDiscoSearcher.cs
- ControlParameter.cs
- VirtualDirectoryMappingCollection.cs
- ListBase.cs
- CompletionCallbackWrapper.cs
- CriticalHandle.cs
- TransformProviderWrapper.cs
- CodeCatchClause.cs
- CommandConverter.cs
- RegexMatchCollection.cs
- SimpleMailWebEventProvider.cs
- RadioButtonList.cs
- PropertyEmitter.cs
- RequestResizeEvent.cs
- SqlDataSourceDesigner.cs
- SByteStorage.cs
- GeneralTransform3DGroup.cs
- WindowsSecurityTokenAuthenticator.cs
- WindowsFormsSynchronizationContext.cs
- Point4D.cs
- ElementsClipboardData.cs
- VisualTreeHelper.cs
- SQLDecimal.cs
- CompilerError.cs
- BasicExpandProvider.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- RedistVersionInfo.cs
- BaseTemplateBuildProvider.cs
- WebPartEditorCancelVerb.cs
- CellIdBoolean.cs
- ScrollItemPatternIdentifiers.cs
- SwitchAttribute.cs
- CodeDirectoryCompiler.cs
- OdbcConnection.cs
- ForceCopyBuildProvider.cs
- ValueProviderWrapper.cs
- AssemblySettingAttributes.cs
- FilterQueryOptionExpression.cs
- StorageBasedPackageProperties.cs
- StructuredTypeInfo.cs
- VirtualPathUtility.cs
- WindowsTokenRoleProvider.cs
- StylusPointPropertyInfo.cs
- CodeExpressionRuleDeclaration.cs
- RowUpdatingEventArgs.cs
- DefaultTraceListener.cs
- WeakReferenceEnumerator.cs
- UmAlQuraCalendar.cs
- ContainerActivationHelper.cs
- XmlAutoDetectWriter.cs
- BaseTemplateParser.cs
- SpeechSeg.cs
- ReflectEventDescriptor.cs
- SimpleMailWebEventProvider.cs
- DefaultAssemblyResolver.cs
- StackBuilderSink.cs
- DataGridViewCellValidatingEventArgs.cs
- DataGridPagerStyle.cs
- Transaction.cs
- RowToParametersTransformer.cs
- ForeignKeyConstraint.cs
- SubMenuStyleCollection.cs
- ExpressionPrefixAttribute.cs
- MenuBase.cs
- FieldAccessException.cs
- NativeMethods.cs
- UnaryExpression.cs
- CaseExpr.cs
- FileSystemWatcher.cs
- PointF.cs
- ClaimTypeElement.cs
- PartialArray.cs
- JoinTreeSlot.cs
- SqlDataRecord.cs
- Rotation3D.cs
- Style.cs
- ConfigurationManagerHelperFactory.cs
- AnnotationMap.cs
- ISAPIApplicationHost.cs
- CssStyleCollection.cs
- StrongNameUtility.cs
- DecimalFormatter.cs
- DbDataAdapter.cs
- MemberAccessException.cs
- ApplicationProxyInternal.cs