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
- ExpandableObjectConverter.cs
- KeyPressEvent.cs
- ObjectDataSourceStatusEventArgs.cs
- SimpleModelProvider.cs
- TypeForwardedFromAttribute.cs
- TimeManager.cs
- PlanCompiler.cs
- ImportException.cs
- DocumentViewerBase.cs
- categoryentry.cs
- COAUTHINFO.cs
- DataGridCellItemAutomationPeer.cs
- SqlDataSourceCache.cs
- TracingConnection.cs
- ViewValidator.cs
- SRGSCompiler.cs
- Expressions.cs
- FileSecurity.cs
- RawUIStateInputReport.cs
- WebPartUtil.cs
- DbDataSourceEnumerator.cs
- ModelPerspective.cs
- SiteMapNode.cs
- WebServiceData.cs
- RealizationContext.cs
- Int16AnimationBase.cs
- Math.cs
- ProviderBase.cs
- GroupAggregateExpr.cs
- UrlPath.cs
- VersionedStreamOwner.cs
- CultureInfoConverter.cs
- XmlDataCollection.cs
- Lock.cs
- AutomationEventArgs.cs
- TimeEnumHelper.cs
- TypeUtil.cs
- ExeConfigurationFileMap.cs
- ResourceDisplayNameAttribute.cs
- TextServicesHost.cs
- UnsafeNativeMethods.cs
- Unit.cs
- TrustManager.cs
- Convert.cs
- BuildResultCache.cs
- RegexStringValidator.cs
- TextTrailingCharacterEllipsis.cs
- DataGridSortCommandEventArgs.cs
- HtmlInputButton.cs
- MLangCodePageEncoding.cs
- MessageBox.cs
- GridEntryCollection.cs
- CompilationUnit.cs
- CapabilitiesRule.cs
- NonParentingControl.cs
- QueryOperator.cs
- ImageSource.cs
- StoreContentChangedEventArgs.cs
- Crc32Helper.cs
- CodeGotoStatement.cs
- SevenBitStream.cs
- SystemFonts.cs
- XmlSequenceWriter.cs
- SourceInterpreter.cs
- AppDomainManager.cs
- JsonWriter.cs
- HyperLinkField.cs
- PKCS1MaskGenerationMethod.cs
- ClickablePoint.cs
- XmlLoader.cs
- GeometryCollection.cs
- XmlSchemaExternal.cs
- QueryResult.cs
- Itemizer.cs
- Aggregates.cs
- RegexFCD.cs
- ResourcePermissionBase.cs
- XsdValidatingReader.cs
- DbException.cs
- Odbc32.cs
- Token.cs
- PermissionToken.cs
- HMAC.cs
- MsmqException.cs
- RoleGroup.cs
- TagPrefixAttribute.cs
- XmlEventCache.cs
- IDictionary.cs
- MessageEventSubscriptionService.cs
- _RegBlobWebProxyDataBuilder.cs
- TargetConverter.cs
- ObjectListGeneralPage.cs
- WebPartZoneDesigner.cs
- SqlParameterizer.cs
- OdbcFactory.cs
- EntityModelBuildProvider.cs
- CompiledQuery.cs
- SQLSingle.cs
- GridPattern.cs
- BrowserDefinitionCollection.cs