Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / newinstructionaction.cs / 1305376 / newinstructionaction.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 NewInstructionAction : ContainerAction { string name; string parent; bool fallback; internal override void Compile(Compiler compiler) { XPathNavigator nav = compiler.Input.Navigator.Clone(); name = nav.Name; nav.MoveToParent(); parent = nav.Name; if (compiler.Recurse()) { CompileSelectiveTemplate(compiler); compiler.ToParent(); } } internal void CompileSelectiveTemplate(Compiler compiler){ NavigatorInput input = compiler.Input; do{ if (Ref.Equal(input.NamespaceURI, input.Atoms.UriXsl) && Ref.Equal(input.LocalName, input.Atoms.Fallback)){ fallback = true; if (compiler.Recurse()){ CompileTemplate(compiler); compiler.ToParent(); } } } while (compiler.Advance()); } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch (frame.State) { case Initialized: if (!fallback) { throw XsltException.Create(Res.Xslt_UnknownExtensionElement, this.name); } if (this.containedActions != null && this.containedActions.Count > 0) { processor.PushActionFrame(frame); frame.State = ProcessingChildren; break; } else goto case ProcessingChildren; case ProcessingChildren: frame.Finished(); break; default: Debug.Fail("Invalid Container action 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 NewInstructionAction : ContainerAction { string name; string parent; bool fallback; internal override void Compile(Compiler compiler) { XPathNavigator nav = compiler.Input.Navigator.Clone(); name = nav.Name; nav.MoveToParent(); parent = nav.Name; if (compiler.Recurse()) { CompileSelectiveTemplate(compiler); compiler.ToParent(); } } internal void CompileSelectiveTemplate(Compiler compiler){ NavigatorInput input = compiler.Input; do{ if (Ref.Equal(input.NamespaceURI, input.Atoms.UriXsl) && Ref.Equal(input.LocalName, input.Atoms.Fallback)){ fallback = true; if (compiler.Recurse()){ CompileTemplate(compiler); compiler.ToParent(); } } } while (compiler.Advance()); } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch (frame.State) { case Initialized: if (!fallback) { throw XsltException.Create(Res.Xslt_UnknownExtensionElement, this.name); } if (this.containedActions != null && this.containedActions.Count > 0) { processor.PushActionFrame(frame); frame.State = ProcessingChildren; break; } else goto case ProcessingChildren; case ProcessingChildren: frame.Finished(); break; default: Debug.Fail("Invalid Container action 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
- SynchronousChannel.cs
- Win32SafeHandles.cs
- StrokeFIndices.cs
- MouseEvent.cs
- ApplicationCommands.cs
- ListView.cs
- TokenBasedSet.cs
- SelectionHighlightInfo.cs
- Ray3DHitTestResult.cs
- SafeFreeMibTable.cs
- HtmlHistory.cs
- PresentationAppDomainManager.cs
- DbSetClause.cs
- VisualSerializer.cs
- listitem.cs
- AuthorizationRuleCollection.cs
- Nullable.cs
- SqlNodeAnnotations.cs
- LinqTreeNodeEvaluator.cs
- UnsafePeerToPeerMethods.cs
- CharacterBufferReference.cs
- ItemsPresenter.cs
- ToolTipAutomationPeer.cs
- StackBuilderSink.cs
- Panel.cs
- DispatchWrapper.cs
- DataGridViewCellValueEventArgs.cs
- HtmlElementEventArgs.cs
- ExtensionQuery.cs
- DataControlButton.cs
- PersonalizableTypeEntry.cs
- Bold.cs
- TypedRowGenerator.cs
- TextTreeFixupNode.cs
- XmlNullResolver.cs
- CompiledIdentityConstraint.cs
- DataServiceConfiguration.cs
- ApplicationServiceHelper.cs
- StrokeCollectionConverter.cs
- PersonalizableTypeEntry.cs
- WebSysDescriptionAttribute.cs
- SecurityCriticalDataForSet.cs
- FixedSOMContainer.cs
- DataBindingHandlerAttribute.cs
- ISAPIWorkerRequest.cs
- DataGridViewCellStyle.cs
- UITypeEditor.cs
- QilInvoke.cs
- IPAddressCollection.cs
- BaseParaClient.cs
- QueryContext.cs
- UntypedNullExpression.cs
- GPPOINT.cs
- XmlUtf8RawTextWriter.cs
- LinkButton.cs
- DependencyObjectProvider.cs
- AlignmentYValidation.cs
- EmbossBitmapEffect.cs
- DomNameTable.cs
- DataGridItemEventArgs.cs
- ReadOnlyHierarchicalDataSource.cs
- Control.cs
- Latin1Encoding.cs
- PointCollectionConverter.cs
- RegexMatch.cs
- PropertyNames.cs
- CustomLineCap.cs
- ScrollBarRenderer.cs
- Number.cs
- WindowsStatusBar.cs
- SafeSecurityHandles.cs
- UIElement.cs
- objectquery_tresulttype.cs
- XmlDocumentType.cs
- ZoneIdentityPermission.cs
- DataGridViewComboBoxColumn.cs
- CleanUpVirtualizedItemEventArgs.cs
- GridViewRowPresenter.cs
- DeleteIndexBinder.cs
- SqlPersonalizationProvider.cs
- ObjectStateFormatter.cs
- MouseCaptureWithinProperty.cs
- LogWriteRestartAreaAsyncResult.cs
- LocalFileSettingsProvider.cs
- TextEditorSpelling.cs
- TableCellAutomationPeer.cs
- IteratorFilter.cs
- QilParameter.cs
- TileModeValidation.cs
- Bidi.cs
- DSACryptoServiceProvider.cs
- DesignerActionMethodItem.cs
- CircleHotSpot.cs
- xsdvalidator.cs
- SettingsPropertyWrongTypeException.cs
- TemplateApplicationHelper.cs
- XomlSerializationHelpers.cs
- OracleString.cs
- InternalSafeNativeMethods.cs
- RichTextBox.cs