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
- PropertyBuilder.cs
- Container.cs
- SessionParameter.cs
- LineServicesCallbacks.cs
- PermissionSetEnumerator.cs
- Calendar.cs
- WebPartMenu.cs
- ArrayTypeMismatchException.cs
- TextTreeUndo.cs
- UnsafeNativeMethodsTablet.cs
- SocketConnection.cs
- ImageMap.cs
- DataTableReaderListener.cs
- BinHexEncoding.cs
- RequestCachePolicy.cs
- GridItem.cs
- Flowchart.cs
- StructuredType.cs
- AuthenticationConfig.cs
- CorrelationService.cs
- RequestCacheEntry.cs
- InstanceCreationEditor.cs
- XmlFormatExtensionAttribute.cs
- Group.cs
- SizeAnimationClockResource.cs
- XmlUtf8RawTextWriter.cs
- LicenseException.cs
- ServiceControllerDesigner.cs
- NativeDirectoryServicesQueryAPIs.cs
- ConfigurationException.cs
- SizeAnimationUsingKeyFrames.cs
- SerializationStore.cs
- GroupedContextMenuStrip.cs
- IntegerValidatorAttribute.cs
- RadialGradientBrush.cs
- DataTableMapping.cs
- ClientSession.cs
- InstancePersistenceException.cs
- RotateTransform.cs
- ToolStripOverflow.cs
- DictionaryBase.cs
- Errors.cs
- AppLevelCompilationSectionCache.cs
- CommunicationObjectManager.cs
- WorkflowControlClient.cs
- XPathDescendantIterator.cs
- MembershipSection.cs
- HtmlContainerControl.cs
- configsystem.cs
- Action.cs
- BooleanSwitch.cs
- MessageQueueConverter.cs
- RoutedPropertyChangedEventArgs.cs
- QueryContinueDragEvent.cs
- DBConnection.cs
- SafeNativeMethods.cs
- SiteMapNode.cs
- GlyphRunDrawing.cs
- BaseParser.cs
- SmiMetaDataProperty.cs
- EventItfInfo.cs
- DoubleUtil.cs
- ExtensionQuery.cs
- TypedElement.cs
- _PooledStream.cs
- validationstate.cs
- PointLightBase.cs
- TextBoxBase.cs
- DeclarativeExpressionConditionDeclaration.cs
- PropertyGridCommands.cs
- XmlSecureResolver.cs
- StylusPlugInCollection.cs
- TableLayout.cs
- WebPartZoneDesigner.cs
- HideDisabledControlAdapter.cs
- ImageAttributes.cs
- ElementHostPropertyMap.cs
- SqlLiftWhereClauses.cs
- CodeDirectionExpression.cs
- ScrollEventArgs.cs
- XmlKeywords.cs
- CrossAppDomainChannel.cs
- FileUpload.cs
- DocumentGridPage.cs
- LinqDataSourceInsertEventArgs.cs
- OutOfMemoryException.cs
- UncommonField.cs
- AuthorizationSection.cs
- Triplet.cs
- FormParameter.cs
- PowerModeChangedEventArgs.cs
- CodeSubDirectory.cs
- SamlDoNotCacheCondition.cs
- SchemaMerger.cs
- CollectionType.cs
- ListBox.cs
- BuildDependencySet.cs
- FixedSOMPageElement.cs
- GeneralTransform3DTo2DTo3D.cs
- SmiEventSink.cs