Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / AttributeSetAction.cs / 1305376 / AttributeSetAction.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; using System.Collections; internal class AttributeSetAction : ContainerAction { internal XmlQualifiedName name; internal XmlQualifiedName Name { get { return this.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 if (Ref.Equal(name, compiler.Atoms.UseAttributeSets)) { // create a UseAttributeSetsAction // sets come before xsl:attributes AddAction(compiler.CreateUseAttributeSetsAction()); } 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.Attribute)) { // found attribute so add it AddAction(compiler.CreateAttributeAction()); } 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, "attribute-set"); } } while(compiler.Advance()); compiler.ToParent(); } } internal void Merge(AttributeSetAction attributeAction) { // add the contents of "attributeAction" to this action // place them at the end Action action; int i = 0; while((action = attributeAction.GetAction(i)) != null) { AddAction(action); i++; } } } } // 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; using System.Collections; internal class AttributeSetAction : ContainerAction { internal XmlQualifiedName name; internal XmlQualifiedName Name { get { return this.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 if (Ref.Equal(name, compiler.Atoms.UseAttributeSets)) { // create a UseAttributeSetsAction // sets come before xsl:attributes AddAction(compiler.CreateUseAttributeSetsAction()); } 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.Attribute)) { // found attribute so add it AddAction(compiler.CreateAttributeAction()); } 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, "attribute-set"); } } while(compiler.Advance()); compiler.ToParent(); } } internal void Merge(AttributeSetAction attributeAction) { // add the contents of "attributeAction" to this action // place them at the end Action action; int i = 0; while((action = attributeAction.GetAction(i)) != null) { AddAction(action); i++; } } } } // 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
- SocketPermission.cs
- TableAutomationPeer.cs
- AspNetSynchronizationContext.cs
- RSAPKCS1SignatureDeformatter.cs
- WindowsListViewItemCheckBox.cs
- SHA512Managed.cs
- Panel.cs
- ConfigXmlElement.cs
- XmlSchemaObjectTable.cs
- Vector3DAnimation.cs
- EntityDataReader.cs
- ToolStripMenuItem.cs
- SqlRowUpdatingEvent.cs
- SHA256.cs
- TimelineGroup.cs
- adornercollection.cs
- HashStream.cs
- SerialPinChanges.cs
- Canvas.cs
- HitTestWithPointDrawingContextWalker.cs
- ExeContext.cs
- XmlLanguage.cs
- _StreamFramer.cs
- HashRepartitionEnumerator.cs
- XamlTypeMapperSchemaContext.cs
- HotSpot.cs
- QuaternionAnimationBase.cs
- HMAC.cs
- WebPartConnectionsCloseVerb.cs
- ConfigurationStrings.cs
- RandomDelaySendsAsyncResult.cs
- WindowShowOrOpenTracker.cs
- ObsoleteAttribute.cs
- SoapExtensionTypeElementCollection.cs
- CodeTypeOfExpression.cs
- GridViewEditEventArgs.cs
- SerialErrors.cs
- WebFormDesignerActionService.cs
- SplayTreeNode.cs
- UpdateCommand.cs
- DynamicDocumentPaginator.cs
- ApplicationGesture.cs
- PageContentCollection.cs
- SectionInput.cs
- Span.cs
- UrlUtility.cs
- ProcessInputEventArgs.cs
- SqlResolver.cs
- ListItemCollection.cs
- Scheduling.cs
- CultureTable.cs
- TraceListener.cs
- JapaneseCalendar.cs
- RightsManagementEncryptionTransform.cs
- propertyentry.cs
- VerticalAlignConverter.cs
- FilterEventArgs.cs
- DecimalAnimation.cs
- HiddenFieldPageStatePersister.cs
- X509IssuerSerialKeyIdentifierClause.cs
- Stylesheet.cs
- DBNull.cs
- sqlstateclientmanager.cs
- LinqDataSourceInsertEventArgs.cs
- ConfigUtil.cs
- PolicyDesigner.cs
- TextTreeUndoUnit.cs
- smtppermission.cs
- ContentPlaceHolder.cs
- AttributeExtensions.cs
- ObjectDataSource.cs
- TableLayoutCellPaintEventArgs.cs
- URLString.cs
- HtmlMobileTextWriter.cs
- UnlockCardRequest.cs
- CornerRadius.cs
- TextChangedEventArgs.cs
- WorkflowFileItem.cs
- Logging.cs
- OrthographicCamera.cs
- TextFormatterImp.cs
- ScriptingAuthenticationServiceSection.cs
- BulletedList.cs
- NavigatorOutput.cs
- MouseGestureValueSerializer.cs
- XmlSchemas.cs
- HostingEnvironment.cs
- SystemGatewayIPAddressInformation.cs
- Util.cs
- assertwrapper.cs
- WebPermission.cs
- AbstractSvcMapFileLoader.cs
- EventTrigger.cs
- SecurityPolicySection.cs
- XmlAttribute.cs
- KeyTimeConverter.cs
- EncoderBestFitFallback.cs
- OdbcConnectionOpen.cs
- StorageAssociationTypeMapping.cs
- ProfilePropertyNameValidator.cs