Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- Command.cs
- SessionEndingCancelEventArgs.cs
- WebResponse.cs
- DatatypeImplementation.cs
- ExpressionVisitor.cs
- DataGridViewTextBoxColumn.cs
- Canvas.cs
- QilFactory.cs
- TypeConverterAttribute.cs
- Point.cs
- SpecialFolderEnumConverter.cs
- MultiPageTextView.cs
- ParameterExpression.cs
- CategoryAttribute.cs
- COM2FontConverter.cs
- CollectionAdapters.cs
- XmlDataContract.cs
- TextLine.cs
- TemplateField.cs
- ApplicationServiceManager.cs
- SoapEnvelopeProcessingElement.cs
- ContextMenuStripGroupCollection.cs
- MemoryFailPoint.cs
- SafeLocalAllocation.cs
- CreateUserErrorEventArgs.cs
- NullableIntMinMaxAggregationOperator.cs
- SuppressMergeCheckAttribute.cs
- FixedLineResult.cs
- WorkflowCommandExtensionItem.cs
- SafeIUnknown.cs
- ToolStripPanelCell.cs
- StagingAreaInputItem.cs
- WindowsSecurityToken.cs
- DefaultClaimSet.cs
- TextEffectResolver.cs
- NodeLabelEditEvent.cs
- Freezable.cs
- Buffer.cs
- RadioButtonList.cs
- PersonalizationState.cs
- DesignerTextBoxAdapter.cs
- ActivityExecutorSurrogate.cs
- ClientUtils.cs
- AsmxEndpointPickerExtension.cs
- Style.cs
- Point3D.cs
- RowUpdatedEventArgs.cs
- DependencyObject.cs
- ListBoxItemAutomationPeer.cs
- CommandValueSerializer.cs
- DoubleCollectionValueSerializer.cs
- MultipleViewProviderWrapper.cs
- ActionMismatchAddressingException.cs
- PartialClassGenerationTask.cs
- x509utils.cs
- CorePropertiesFilter.cs
- CultureTableRecord.cs
- ColumnResizeUndoUnit.cs
- RuleSettingsCollection.cs
- TreeNodeEventArgs.cs
- EmbossBitmapEffect.cs
- OperationResponse.cs
- QueryResult.cs
- CrossSiteScriptingValidation.cs
- ADConnectionHelper.cs
- HttpsHostedTransportConfiguration.cs
- GeneralTransform3DCollection.cs
- DefaultValidator.cs
- FormattedTextSymbols.cs
- ComNativeDescriptor.cs
- CatalogZoneAutoFormat.cs
- XmlEnumAttribute.cs
- AnimationClockResource.cs
- WebPartZoneBase.cs
- ThrowHelper.cs
- ChunkedMemoryStream.cs
- ClassicBorderDecorator.cs
- ListViewGroupConverter.cs
- PeerToPeerException.cs
- MarkedHighlightComponent.cs
- FixedDocument.cs
- StrokeCollection.cs
- InfoCardArgumentException.cs
- UriSectionReader.cs
- CodeIndexerExpression.cs
- UInt32Converter.cs
- DataPagerFieldItem.cs
- Process.cs
- AsymmetricKeyExchangeDeformatter.cs
- SerializerProvider.cs
- Size3DConverter.cs
- QueryContinueDragEvent.cs
- SemanticBasicElement.cs
- UnsafeNativeMethods.cs
- DataMisalignedException.cs
- ValueProviderWrapper.cs
- HandledEventArgs.cs
- DirectoryInfo.cs
- SafeRightsManagementSessionHandle.cs
- WriteStateInfoBase.cs