Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SetterBase.cs
- ProfileGroupSettingsCollection.cs
- TypeDescriptionProvider.cs
- ZoomPercentageConverter.cs
- SafeNativeMethodsOther.cs
- BodyGlyph.cs
- HttpCacheVaryByContentEncodings.cs
- HtmlWindow.cs
- ValueConversionAttribute.cs
- Effect.cs
- NodeLabelEditEvent.cs
- AnnotationHelper.cs
- EventMetadata.cs
- QilFunction.cs
- _ListenerAsyncResult.cs
- CacheDependency.cs
- BaseCollection.cs
- BindingWorker.cs
- WorkflowServiceBehavior.cs
- DocumentSequence.cs
- Hyperlink.cs
- XmlSerializerSection.cs
- GridProviderWrapper.cs
- LicenseProviderAttribute.cs
- AffineTransform3D.cs
- XmlMemberMapping.cs
- CategoryAttribute.cs
- Stack.cs
- JumpList.cs
- ActionNotSupportedException.cs
- LinqDataSourceDisposeEventArgs.cs
- ExceptionWrapper.cs
- BamlResourceSerializer.cs
- SystemKeyConverter.cs
- FixedPageAutomationPeer.cs
- Label.cs
- DefaultAsyncDataDispatcher.cs
- VScrollProperties.cs
- CertificateManager.cs
- GraphicsContainer.cs
- UpdateCompiler.cs
- TrimSurroundingWhitespaceAttribute.cs
- PagesSection.cs
- LiteralControl.cs
- ModifyActivitiesPropertyDescriptor.cs
- SmtpClient.cs
- StringPropertyBuilder.cs
- SrgsRuleRef.cs
- BezierSegment.cs
- BinaryFormatterWriter.cs
- Utils.cs
- ContentControl.cs
- AdornerDecorator.cs
- StrokeCollectionDefaultValueFactory.cs
- ErrorFormatter.cs
- CachedRequestParams.cs
- BufferedGraphicsManager.cs
- GB18030Encoding.cs
- XmlSchemaAnnotated.cs
- WebBaseEventKeyComparer.cs
- GenerateScriptTypeAttribute.cs
- StringUtil.cs
- DisableDpiAwarenessAttribute.cs
- Point4DConverter.cs
- PrivacyNoticeBindingElementImporter.cs
- SemanticResolver.cs
- DayRenderEvent.cs
- TypeNameConverter.cs
- EncryptedXml.cs
- SoapClientProtocol.cs
- SpotLight.cs
- PageTheme.cs
- ObjectQueryState.cs
- LinqDataSourceValidationException.cs
- WebEvents.cs
- InputManager.cs
- OdbcParameterCollection.cs
- PhysicalOps.cs
- DispatchOperation.cs
- Transform.cs
- SortDescriptionCollection.cs
- LocalizedNameDescriptionPair.cs
- ResourceReferenceExpression.cs
- XmlQueryContext.cs
- ReadWriteSpinLock.cs
- VectorValueSerializer.cs
- SqlCacheDependencyDatabase.cs
- XsdBuilder.cs
- DES.cs
- DecimalConstantAttribute.cs
- TemplateParser.cs
- WaitingCursor.cs
- nulltextnavigator.cs
- XmlUrlEditor.cs
- StructureChangedEventArgs.cs
- TypeResolvingOptions.cs
- RtfToken.cs
- IDictionary.cs
- HWStack.cs
- RequestCacheValidator.cs