Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / CallTemplateAction.cs / 1305376 / CallTemplateAction.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 CallTemplateAction : ContainerAction { private const int ProcessedChildren = 2; private const int ProcessedTemplate = 3; private XmlQualifiedName name; internal override void Compile(Compiler compiler) { CompileAttributes(compiler); CheckRequiredAttribute(compiler, this.name, "name"); CompileContent(compiler); } internal override bool CompileAttribute(Compiler compiler) { string name = compiler.Input.LocalName; string value = compiler.Input.Value; if (Ref.Equal(name, compiler.Atoms.Name)) { Debug.Assert(this.name == null); this.name = compiler.CreateXPathQName(value); } else { return false; } return true; } private void CompileContent(Compiler compiler) { NavigatorInput input = compiler.Input; if (compiler.Recurse()) { do { switch(input.NodeType) { case XPathNodeType.Element: compiler.PushNamespaceScope(); string nspace = input.NamespaceURI; string name = input.LocalName; if (Ref.Equal(nspace, input.Atoms.UriXsl) && Ref.Equal(name, input.Atoms.WithParam)) { WithParamAction par = compiler.CreateWithParamAction(); CheckDuplicateParams(par.Name); AddAction(par); } else { throw compiler.UnexpectedKeyword(); } compiler.PopScope(); break; case XPathNodeType.Comment: case XPathNodeType.ProcessingInstruction: case XPathNodeType.Whitespace: case XPathNodeType.SignificantWhitespace: break; default: throw XsltException.Create(Res.Xslt_InvalidContents, "call-template"); } } while(compiler.Advance()); compiler.ToParent(); } } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch(frame.State) { case Initialized : processor.ResetParams(); if (this.containedActions != null && this.containedActions.Count > 0) { processor.PushActionFrame(frame); frame.State = ProcessedChildren; break; } goto case ProcessedChildren; case ProcessedChildren: TemplateAction action = processor.Stylesheet.FindTemplate(this.name); if (action != null) { frame.State = ProcessedTemplate; processor.PushActionFrame(action, frame.NodeSet); break; } else { throw XsltException.Create(Res.Xslt_InvalidCallTemplate, this.name.ToString()); } case ProcessedTemplate: frame.Finished(); break; default: Debug.Fail("Invalid CallTemplateAction 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
- ResourceProperty.cs
- ListBindingConverter.cs
- RowVisual.cs
- SettingsProviderCollection.cs
- RelationshipConverter.cs
- VScrollProperties.cs
- DefaultValueTypeConverter.cs
- XsdDuration.cs
- XD.cs
- OleDbMetaDataFactory.cs
- InvalidWorkflowException.cs
- WebCodeGenerator.cs
- QuaternionAnimationBase.cs
- WebPartConnectionsConfigureVerb.cs
- BulletedList.cs
- RunWorkerCompletedEventArgs.cs
- HttpDictionary.cs
- DataGridAddNewRow.cs
- EditorServiceContext.cs
- GatewayDefinition.cs
- HMACSHA512.cs
- LineBreakRecord.cs
- FileLevelControlBuilderAttribute.cs
- ExplicitDiscriminatorMap.cs
- WebPartZoneCollection.cs
- embossbitmapeffect.cs
- _ListenerResponseStream.cs
- RuleAttributes.cs
- CompressedStack.cs
- SelectionRange.cs
- XhtmlBasicPageAdapter.cs
- __Filters.cs
- ErrorsHelper.cs
- FontUnit.cs
- BezierSegment.cs
- UInt64Storage.cs
- CapabilitiesAssignment.cs
- BatchParser.cs
- PrePostDescendentsWalker.cs
- DataGridRowHeaderAutomationPeer.cs
- CompiledQuery.cs
- HttpCapabilitiesBase.cs
- DataGridViewAccessibleObject.cs
- HighlightVisual.cs
- BufferedStream2.cs
- BindingValueChangedEventArgs.cs
- BaseHashHelper.cs
- IISMapPath.cs
- XmlReturnWriter.cs
- TemplateLookupAction.cs
- ValidationPropertyAttribute.cs
- Errors.cs
- TimeSpanValidatorAttribute.cs
- WindowsEditBoxRange.cs
- SymLanguageType.cs
- DataGridViewRowConverter.cs
- ChangesetResponse.cs
- DataGridViewColumnDesigner.cs
- RadioButtonBaseAdapter.cs
- _IPv4Address.cs
- ClientSettingsSection.cs
- BmpBitmapEncoder.cs
- NavigatorInput.cs
- ByteAnimationUsingKeyFrames.cs
- DataFormats.cs
- MailWebEventProvider.cs
- InvokeProviderWrapper.cs
- Set.cs
- SafeNativeMethodsOther.cs
- ProfileEventArgs.cs
- Oid.cs
- ParallelTimeline.cs
- InlineObject.cs
- WebBrowser.cs
- PolicyUnit.cs
- RemotingSurrogateSelector.cs
- SqlDataSourceCommandEventArgs.cs
- SettingsSavedEventArgs.cs
- HotSpot.cs
- StaticFileHandler.cs
- bidPrivateBase.cs
- CodeIdentifiers.cs
- TraceProvider.cs
- TimeSpanSecondsConverter.cs
- MetadataArtifactLoaderResource.cs
- StringFormat.cs
- ComponentEditorForm.cs
- WebPartEditVerb.cs
- LinqDataSourceDeleteEventArgs.cs
- EnumBuilder.cs
- XmlSchemaAny.cs
- ReflectTypeDescriptionProvider.cs
- WindowsSecurityToken.cs
- UnmanagedMarshal.cs
- EventLogEntryCollection.cs
- BamlWriter.cs
- Graph.cs
- TrimSurroundingWhitespaceAttribute.cs
- RijndaelManagedTransform.cs
- ipaddressinformationcollection.cs