Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / AttributeSetAction.cs / 1 / 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, Keywords.s_Name); CompileContent(compiler); } internal override bool CompileAttribute(Compiler compiler) { string name = compiler.Input.LocalName; string value = compiler.Input.Value; if (Keywords.Equals(name, compiler.Atoms.Name)) { Debug.Assert(this.name == null); this.name = compiler.CreateXPathQName(value); } else if (Keywords.Equals(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 (Keywords.Equals(nspace, input.Atoms.XsltNamespace) && Keywords.Equals(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, Keywords.s_AttributeSet); } } 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, Keywords.s_Name); CompileContent(compiler); } internal override bool CompileAttribute(Compiler compiler) { string name = compiler.Input.LocalName; string value = compiler.Input.Value; if (Keywords.Equals(name, compiler.Atoms.Name)) { Debug.Assert(this.name == null); this.name = compiler.CreateXPathQName(value); } else if (Keywords.Equals(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 (Keywords.Equals(nspace, input.Atoms.XsltNamespace) && Keywords.Equals(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, Keywords.s_AttributeSet); } } 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
- FileClassifier.cs
- XmlSigningNodeWriter.cs
- InkSerializer.cs
- UpdateEventArgs.cs
- UnsafeNativeMethodsTablet.cs
- CfgParser.cs
- Expression.cs
- UnsafeNativeMethods.cs
- DayRenderEvent.cs
- StringAttributeCollection.cs
- PriorityChain.cs
- TypeElement.cs
- CommandConverter.cs
- LinqDataView.cs
- GroupBox.cs
- WebHeaderCollection.cs
- DataTableReader.cs
- TransactionFlowOption.cs
- DataGridRow.cs
- Roles.cs
- CompensateDesigner.cs
- OpenTypeLayout.cs
- Polygon.cs
- Imaging.cs
- CryptoApi.cs
- AspCompat.cs
- IDataContractSurrogate.cs
- WebPartPersonalization.cs
- CodeRegionDirective.cs
- CacheChildrenQuery.cs
- LineVisual.cs
- Rect3DValueSerializer.cs
- FontInfo.cs
- SchemaImporterExtensionElementCollection.cs
- TableItemStyle.cs
- ToolStripGrip.cs
- MethodCallTranslator.cs
- RequestCacheManager.cs
- FormatConvertedBitmap.cs
- Cursors.cs
- SyntaxCheck.cs
- ComponentResourceManager.cs
- SystemColors.cs
- BaseDataBoundControlDesigner.cs
- Select.cs
- FieldToken.cs
- ProtocolsConfiguration.cs
- SubMenuStyle.cs
- assertwrapper.cs
- DataObjectEventArgs.cs
- PriorityBindingExpression.cs
- CaseInsensitiveComparer.cs
- BinHexDecoder.cs
- SystemIPAddressInformation.cs
- securitycriticaldataClass.cs
- SessionIDManager.cs
- ParameterCollection.cs
- HyperLink.cs
- SiteMap.cs
- AttachedPropertyMethodSelector.cs
- FixedNode.cs
- TemplateColumn.cs
- DispatcherProcessingDisabled.cs
- HostSecurityManager.cs
- CriticalExceptions.cs
- EpmCustomContentWriterNodeData.cs
- RadioButtonStandardAdapter.cs
- CryptoStream.cs
- ManagedCodeMarkers.cs
- ReadWriteSpinLock.cs
- SecurityPolicySection.cs
- MouseOverProperty.cs
- XamlStream.cs
- filewebrequest.cs
- DesignTimeParseData.cs
- XPathDocumentNavigator.cs
- SelectedPathEditor.cs
- DbProviderFactories.cs
- SByte.cs
- TextHidden.cs
- ReaderWriterLockWrapper.cs
- EventDrivenDesigner.cs
- ConstraintEnumerator.cs
- ListControlActionList.cs
- MetafileHeader.cs
- WebPartExportVerb.cs
- ScriptResourceHandler.cs
- MgmtConfigurationRecord.cs
- RefreshEventArgs.cs
- LocalIdCollection.cs
- ClientBuildManagerCallback.cs
- LazyTextWriterCreator.cs
- SqlParameterCollection.cs
- Axis.cs
- IOException.cs
- StatusBarPanel.cs
- ToolStripDesigner.cs
- Composition.cs
- LocalValueEnumerator.cs
- ListControlConvertEventArgs.cs