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
- SimplePropertyEntry.cs
- PageParserFilter.cs
- RIPEMD160.cs
- DomNameTable.cs
- ActiveXContainer.cs
- CurrencyWrapper.cs
- TemplateGroupCollection.cs
- SizeChangedEventArgs.cs
- SecurityRuntime.cs
- XhtmlTextWriter.cs
- xmlfixedPageInfo.cs
- RemotingConfiguration.cs
- Style.cs
- DesignerAdapterUtil.cs
- MenuTracker.cs
- followingsibling.cs
- CallSiteHelpers.cs
- PackageStore.cs
- ObjectTag.cs
- SqlCacheDependency.cs
- ZipIOLocalFileBlock.cs
- ToolStripOverflowButton.cs
- MimeTypeAttribute.cs
- Module.cs
- CheckBoxBaseAdapter.cs
- AssemblyHash.cs
- Point4D.cs
- ValueProviderWrapper.cs
- EncryptedData.cs
- ProviderConnectionPointCollection.cs
- BulletedListDesigner.cs
- Font.cs
- RawStylusInputCustomData.cs
- ToolStripContainerDesigner.cs
- MultipartContentParser.cs
- XmlSchemaSimpleTypeList.cs
- XmlDeclaration.cs
- TrackingParticipant.cs
- EncryptedKeyHashIdentifierClause.cs
- ExtractedStateEntry.cs
- UserControl.cs
- TextEvent.cs
- CacheDependency.cs
- HttpFileCollectionBase.cs
- FileDialog_Vista_Interop.cs
- StyleXamlTreeBuilder.cs
- FamilyCollection.cs
- XPathNavigatorReader.cs
- SafeEventLogReadHandle.cs
- SingleKeyFrameCollection.cs
- ActivityBuilderXamlWriter.cs
- FirewallWrapper.cs
- ComponentEditorPage.cs
- SemaphoreSecurity.cs
- Calendar.cs
- Module.cs
- GACMembershipCondition.cs
- StorageMappingFragment.cs
- WebExceptionStatus.cs
- XmlLoader.cs
- GridPattern.cs
- ImageClickEventArgs.cs
- ApplicationCommands.cs
- ResourceAssociationType.cs
- ReadWriteSpinLock.cs
- Package.cs
- QuadTree.cs
- HtmlControlPersistable.cs
- XpsFilter.cs
- ListBindableAttribute.cs
- LineGeometry.cs
- CreateUserWizard.cs
- SvcMapFileSerializer.cs
- ExtentKey.cs
- SHA384Cng.cs
- UnsafeNativeMethods.cs
- XmlILStorageConverter.cs
- XsdDateTime.cs
- TextSelectionProcessor.cs
- LogReserveAndAppendState.cs
- KerberosSecurityTokenAuthenticator.cs
- PersonalizableTypeEntry.cs
- EdmItemError.cs
- ResourceDictionary.cs
- ConversionContext.cs
- ClientSideQueueItem.cs
- WCFBuildProvider.cs
- XPathAncestorIterator.cs
- sqlcontext.cs
- ProgramNode.cs
- XmlStringTable.cs
- EditorAttributeInfo.cs
- XamlToRtfParser.cs
- QuaternionAnimation.cs
- HttpDictionary.cs
- IriParsingElement.cs
- Site.cs
- SQLMoneyStorage.cs
- ElementsClipboardData.cs
- IPEndPoint.cs