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
- CancellationTokenSource.cs
- GroupQuery.cs
- Comparer.cs
- PixelFormatConverter.cs
- MetadataArtifactLoaderComposite.cs
- EncoderFallback.cs
- BaseServiceProvider.cs
- PlanCompilerUtil.cs
- MimeXmlReflector.cs
- StringKeyFrameCollection.cs
- DataGridViewCellMouseEventArgs.cs
- FloaterParaClient.cs
- ErrorCodes.cs
- TypedDatasetGenerator.cs
- OleDbReferenceCollection.cs
- ComponentEditorPage.cs
- WebScriptEnablingBehavior.cs
- CodeCommentStatementCollection.cs
- BaseAsyncResult.cs
- HtmlTextArea.cs
- PolyLineSegmentFigureLogic.cs
- DefaultSettingsSection.cs
- VerificationAttribute.cs
- ILGenerator.cs
- SynchronizedInputProviderWrapper.cs
- SmtpLoginAuthenticationModule.cs
- WebPartZone.cs
- LayoutEngine.cs
- IInstanceContextProvider.cs
- UseManagedPresentationBindingElementImporter.cs
- LinqDataSourceView.cs
- HttpValueCollection.cs
- MetaType.cs
- DuplicateMessageDetector.cs
- BrushValueSerializer.cs
- SingleAnimation.cs
- SqlDataReaderSmi.cs
- PreservationFileReader.cs
- HttpSysSettings.cs
- PixelShader.cs
- UInt64Storage.cs
- XamlStyleSerializer.cs
- ElementInit.cs
- FloaterParagraph.cs
- DelegateHelpers.cs
- OutputCacheProfileCollection.cs
- EntityWrapperFactory.cs
- GrabHandleGlyph.cs
- Object.cs
- PassportAuthentication.cs
- BamlRecordHelper.cs
- TiffBitmapEncoder.cs
- BaseDataList.cs
- Symbol.cs
- OlePropertyStructs.cs
- EncryptedType.cs
- ColorPalette.cs
- AccessDataSource.cs
- XmlTextReader.cs
- WebPermission.cs
- WizardPanelChangingEventArgs.cs
- PropertyPathWorker.cs
- ListBox.cs
- AssociationTypeEmitter.cs
- EntityDataSourceDataSelection.cs
- ModulesEntry.cs
- ScopedKnownTypes.cs
- EventSource.cs
- QilXmlReader.cs
- AttributeQuery.cs
- ContainerFilterService.cs
- CompilerGlobalScopeAttribute.cs
- ScriptResourceHandler.cs
- AttributeEmitter.cs
- SyndicationSerializer.cs
- XPathEmptyIterator.cs
- ContractNamespaceAttribute.cs
- PropertyManager.cs
- TextEditorCopyPaste.cs
- HttpResponseInternalWrapper.cs
- Atom10FormatterFactory.cs
- DeferrableContent.cs
- DesignerActionList.cs
- SQLBinary.cs
- SiteMapDataSource.cs
- GlobalEventManager.cs
- Vector3dCollection.cs
- XmlSchemaNotation.cs
- ModifyActivitiesPropertyDescriptor.cs
- StateMachineWorkflow.cs
- CharAnimationBase.cs
- IndexedString.cs
- TextEncodedRawTextWriter.cs
- DSASignatureFormatter.cs
- BufferedGraphicsContext.cs
- ViewEventArgs.cs
- UIntPtr.cs
- ProcessStartInfo.cs
- ProtocolElement.cs
- DataPagerField.cs