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
- HwndProxyElementProvider.cs
- Encoder.cs
- SR.Designer.cs
- XmlCharType.cs
- BindingsCollection.cs
- PropertyRecord.cs
- Cast.cs
- ObjectStateEntryDbDataRecord.cs
- VisualStyleRenderer.cs
- regiisutil.cs
- BinaryObjectReader.cs
- errorpatternmatcher.cs
- JsonGlobals.cs
- BindingCollection.cs
- SecuritySessionClientSettings.cs
- AnimationException.cs
- HttpBrowserCapabilitiesBase.cs
- XmlQueryOutput.cs
- SafeRightsManagementEnvironmentHandle.cs
- WebPartDisplayModeCollection.cs
- HtmlSelect.cs
- ConsoleTraceListener.cs
- DrawingGroup.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- DeflateStream.cs
- Constants.cs
- IdnMapping.cs
- FacetChecker.cs
- RenderDataDrawingContext.cs
- CodeGeneratorOptions.cs
- DecimalAnimationBase.cs
- UserMapPath.cs
- SubMenuStyleCollection.cs
- DataSourceSelectArguments.cs
- SQLMembershipProvider.cs
- RoleGroupCollection.cs
- DataSetFieldSchema.cs
- SByte.cs
- UnsafeNativeMethods.cs
- Single.cs
- ApplicationBuildProvider.cs
- XsltConvert.cs
- Material.cs
- XPathEmptyIterator.cs
- MenuBindingsEditor.cs
- XmlDocumentType.cs
- GCHandleCookieTable.cs
- RuntimeEnvironment.cs
- ReadWriteObjectLock.cs
- Vector3DCollection.cs
- TextTreeRootTextBlock.cs
- SelectorItemAutomationPeer.cs
- XmlEncodedRawTextWriter.cs
- ContextBase.cs
- Scene3D.cs
- OutputScopeManager.cs
- ProjectionCamera.cs
- GridViewCellAutomationPeer.cs
- UIElementAutomationPeer.cs
- TagPrefixInfo.cs
- Quad.cs
- LogicalExpressionTypeConverter.cs
- ToolStripTextBox.cs
- ToolBarPanel.cs
- WrapPanel.cs
- NetPeerTcpBindingElement.cs
- DetailsView.cs
- ResXResourceWriter.cs
- AllMembershipCondition.cs
- DataGridRowHeader.cs
- DoubleLinkList.cs
- EditorPart.cs
- BaseUriHelper.cs
- ColorMatrix.cs
- EntityDataSourceStatementEditor.cs
- hebrewshape.cs
- HttpCapabilitiesEvaluator.cs
- DataGridHelper.cs
- CustomWebEventKey.cs
- SQLRoleProvider.cs
- ListItemsCollectionEditor.cs
- ExclusiveTcpListener.cs
- QilInvokeEarlyBound.cs
- BindingContext.cs
- DbCommandDefinition.cs
- HttpListenerRequest.cs
- PaperSource.cs
- EntityDataSourceColumn.cs
- TranslateTransform.cs
- HybridCollection.cs
- XamlReaderHelper.cs
- DataGridViewBand.cs
- MsmqHostedTransportConfiguration.cs
- WebPartManagerInternals.cs
- MdiWindowListStrip.cs
- ComplexType.cs
- StoreConnection.cs
- ContentDisposition.cs
- SystemBrushes.cs
- TypedReference.cs