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 / CopyAttributesAction.cs / 1 / CopyAttributesAction.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 sealed class CopyAttributesAction : Action { private const int BeginEvent = 2; private const int TextEvent = 3; private const int EndEvent = 4; private const int Advance = 5; private static CopyAttributesAction s_Action = new CopyAttributesAction(); internal static CopyAttributesAction GetAction() { Debug.Assert(s_Action != null); return s_Action; } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); while (processor.CanContinue) { switch (frame.State) { case Initialized: if (!frame.Node.HasAttributes || frame.Node.MoveToFirstAttribute() == false) { frame.Finished(); break; } frame.State = BeginEvent; goto case BeginEvent; case BeginEvent: Debug.Assert(frame.State == BeginEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendBeginEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = TextEvent; continue; case TextEvent: Debug.Assert(frame.State == TextEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendTextEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = EndEvent; continue; case EndEvent: Debug.Assert(frame.State == EndEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendEndEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = Advance; continue; case Advance: Debug.Assert(frame.State == Advance); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (frame.Node.MoveToNextAttribute()) { frame.State = BeginEvent; continue; } else { frame.Node.MoveToParent(); frame.Finished(); break; } } break; }// while (processor.CanContinue) } private static bool SendBeginEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.BeginEvent(XPathNodeType.Attribute, node.Prefix, node.LocalName, node.NamespaceURI, false); } private static bool SendTextEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.TextEvent(node.Value); } private static bool SendEndEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.EndEvent(XPathNodeType.Attribute); } } } // 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 sealed class CopyAttributesAction : Action { private const int BeginEvent = 2; private const int TextEvent = 3; private const int EndEvent = 4; private const int Advance = 5; private static CopyAttributesAction s_Action = new CopyAttributesAction(); internal static CopyAttributesAction GetAction() { Debug.Assert(s_Action != null); return s_Action; } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); while (processor.CanContinue) { switch (frame.State) { case Initialized: if (!frame.Node.HasAttributes || frame.Node.MoveToFirstAttribute() == false) { frame.Finished(); break; } frame.State = BeginEvent; goto case BeginEvent; case BeginEvent: Debug.Assert(frame.State == BeginEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendBeginEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = TextEvent; continue; case TextEvent: Debug.Assert(frame.State == TextEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendTextEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = EndEvent; continue; case EndEvent: Debug.Assert(frame.State == EndEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendEndEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = Advance; continue; case Advance: Debug.Assert(frame.State == Advance); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (frame.Node.MoveToNextAttribute()) { frame.State = BeginEvent; continue; } else { frame.Node.MoveToParent(); frame.Finished(); break; } } break; }// while (processor.CanContinue) } private static bool SendBeginEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.BeginEvent(XPathNodeType.Attribute, node.Prefix, node.LocalName, node.NamespaceURI, false); } private static bool SendTextEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.TextEvent(node.Value); } private static bool SendEndEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.EndEvent(XPathNodeType.Attribute); } } } // 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
- OledbConnectionStringbuilder.cs
- NullRuntimeConfig.cs
- PreApplicationStartMethodAttribute.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- WebErrorHandler.cs
- CapabilitiesAssignment.cs
- ServiceControllerDesigner.cs
- PasswordBoxAutomationPeer.cs
- BitArray.cs
- CngProperty.cs
- InkCanvasSelectionAdorner.cs
- DataContext.cs
- SqlDataSourceCache.cs
- WindowsSlider.cs
- IERequestCache.cs
- ServicePoint.cs
- CompilerHelpers.cs
- PreviewPageInfo.cs
- NameValueConfigurationElement.cs
- DataSourceCacheDurationConverter.cs
- SchemaElementLookUpTableEnumerator.cs
- DataGridViewImageColumn.cs
- TransformerInfoCollection.cs
- mansign.cs
- ConstraintEnumerator.cs
- WindowsGraphics.cs
- RC2CryptoServiceProvider.cs
- EventData.cs
- TypefaceMap.cs
- DrawingServices.cs
- MessageBox.cs
- SchemaImporterExtension.cs
- RadioButtonStandardAdapter.cs
- ResolveNextArgumentWorkItem.cs
- Marshal.cs
- SHA512CryptoServiceProvider.cs
- ListBoxItemAutomationPeer.cs
- ObjectHandle.cs
- WindowsRebar.cs
- DetailsViewUpdatedEventArgs.cs
- TabControlCancelEvent.cs
- Rotation3D.cs
- XPathLexer.cs
- MaterialGroup.cs
- SynchronizedInputAdaptor.cs
- ProviderConnectionPointCollection.cs
- Rss20FeedFormatter.cs
- PackageProperties.cs
- HttpHandlersSection.cs
- TextEditorSpelling.cs
- DataConnectionHelper.cs
- CannotUnloadAppDomainException.cs
- SchemaTableColumn.cs
- FileDialogCustomPlace.cs
- VisualBrush.cs
- PrivilegedConfigurationManager.cs
- AspCompat.cs
- httpstaticobjectscollection.cs
- QilChoice.cs
- Visitors.cs
- WindowsAuthenticationModule.cs
- ElementsClipboardData.cs
- ParseChildrenAsPropertiesAttribute.cs
- ZipIOLocalFileHeader.cs
- ScaleTransform3D.cs
- BaseResourcesBuildProvider.cs
- Parameter.cs
- SQLInt32.cs
- UnauthorizedWebPart.cs
- EntitySetRetriever.cs
- CheckBoxStandardAdapter.cs
- BindingWorker.cs
- If.cs
- UpdateException.cs
- DataGridViewColumnEventArgs.cs
- PatternMatcher.cs
- ConstraintConverter.cs
- DataDesignUtil.cs
- WebPartsPersonalizationAuthorization.cs
- controlskin.cs
- Accessors.cs
- TypeDescriptorFilterService.cs
- UICuesEvent.cs
- XPathDocumentIterator.cs
- WrappedIUnknown.cs
- SiteMapDataSource.cs
- InputLanguageManager.cs
- TextCharacters.cs
- XmlUnspecifiedAttribute.cs
- AppSettingsReader.cs
- DBConnectionString.cs
- TraceProvider.cs
- KeyInfo.cs
- StreamWithDictionary.cs
- InfoCardAsymmetricCrypto.cs
- MD5CryptoServiceProvider.cs
- TypeUtil.cs
- DbXmlEnabledProviderManifest.cs
- ListViewGroup.cs
- ColorConvertedBitmap.cs