Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / CompiledAction.cs / 1305376 / CompiledAction.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 abstract class CompiledAction : Action { internal abstract void Compile(Compiler compiler); internal virtual bool CompileAttribute(Compiler compiler) { return false; } public void CompileAttributes(Compiler compiler) { NavigatorInput input = compiler.Input; string element = input.LocalName; if (input.MoveToFirstAttribute()) { do { if (input.NamespaceURI.Length != 0) continue; try { if (CompileAttribute(compiler) == false) { throw XsltException.Create(Res.Xslt_InvalidAttribute, input.LocalName, element); } }catch { if (! compiler.ForwardCompatibility) { throw; } else { // In ForwardCompatibility mode we ignoreing all unknown or incorrect attributes // If it's mandatory attribute we'l notice it absents later. } } } while (input.MoveToNextAttribute()); input.ToParent(); } } // For perf reason we precalculating AVTs at compile time. // If we can do this we set original AVT to null internal static string PrecalculateAvt(ref Avt avt) { string result = null; if(avt != null && avt.IsConstant) { result = avt.Evaluate(null, null); avt = null; } return result; } public void CheckEmpty(Compiler compiler) { // Really EMPTY means no content at all, but the sake of compatibility with MSXML we allow whitespaces string elementName = compiler.Input.Name; if (compiler.Recurse()) { do { // Note: will be reported as XPathNodeType.Text XPathNodeType nodeType = compiler.Input.NodeType; if ( nodeType != XPathNodeType.Whitespace && nodeType != XPathNodeType.Comment && nodeType != XPathNodeType.ProcessingInstruction ) { throw XsltException.Create(Res.Xslt_NotEmptyContents, elementName); } } while (compiler.Advance()); compiler.ToParent(); } } public void CheckRequiredAttribute(Compiler compiler, object attrValue, string attrName) { CheckRequiredAttribute(compiler, attrValue != null, attrName); } public void CheckRequiredAttribute(Compiler compiler, bool attr, string attrName) { if (! attr) { throw XsltException.Create(Res.Xslt_MissingAttribute, attrName); } } } } // 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; internal abstract class CompiledAction : Action { internal abstract void Compile(Compiler compiler); internal virtual bool CompileAttribute(Compiler compiler) { return false; } public void CompileAttributes(Compiler compiler) { NavigatorInput input = compiler.Input; string element = input.LocalName; if (input.MoveToFirstAttribute()) { do { if (input.NamespaceURI.Length != 0) continue; try { if (CompileAttribute(compiler) == false) { throw XsltException.Create(Res.Xslt_InvalidAttribute, input.LocalName, element); } }catch { if (! compiler.ForwardCompatibility) { throw; } else { // In ForwardCompatibility mode we ignoreing all unknown or incorrect attributes // If it's mandatory attribute we'l notice it absents later. } } } while (input.MoveToNextAttribute()); input.ToParent(); } } // For perf reason we precalculating AVTs at compile time. // If we can do this we set original AVT to null internal static string PrecalculateAvt(ref Avt avt) { string result = null; if(avt != null && avt.IsConstant) { result = avt.Evaluate(null, null); avt = null; } return result; } public void CheckEmpty(Compiler compiler) { // Really EMPTY means no content at all, but the sake of compatibility with MSXML we allow whitespaces string elementName = compiler.Input.Name; if (compiler.Recurse()) { do { // Note: will be reported as XPathNodeType.Text XPathNodeType nodeType = compiler.Input.NodeType; if ( nodeType != XPathNodeType.Whitespace && nodeType != XPathNodeType.Comment && nodeType != XPathNodeType.ProcessingInstruction ) { throw XsltException.Create(Res.Xslt_NotEmptyContents, elementName); } } while (compiler.Advance()); compiler.ToParent(); } } public void CheckRequiredAttribute(Compiler compiler, object attrValue, string attrName) { CheckRequiredAttribute(compiler, attrValue != null, attrName); } public void CheckRequiredAttribute(Compiler compiler, bool attr, string attrName) { if (! attr) { throw XsltException.Create(Res.Xslt_MissingAttribute, attrName); } } } } // 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
- MdiWindowListStrip.cs
- WsdlParser.cs
- WindowsListView.cs
- SqlInternalConnectionTds.cs
- DataRecordInfo.cs
- AuthenticationConfig.cs
- HostProtectionPermission.cs
- HijriCalendar.cs
- DateTimeValueSerializerContext.cs
- WebPartConnectionsEventArgs.cs
- FrameworkRichTextComposition.cs
- FormView.cs
- FontFamilyValueSerializer.cs
- ToolStripContextMenu.cs
- sqlstateclientmanager.cs
- GreenMethods.cs
- ConnectionStringsExpressionBuilder.cs
- PackageRelationship.cs
- ToolStripManager.cs
- SQLBoolean.cs
- FieldDescriptor.cs
- DataGridViewTopLeftHeaderCell.cs
- IgnoreSectionHandler.cs
- BoundField.cs
- UIntPtr.cs
- Size3D.cs
- PipeStream.cs
- Timer.cs
- DiscoveryEndpointElement.cs
- HtmlTableCellCollection.cs
- ViewManagerAttribute.cs
- StringValidatorAttribute.cs
- PkcsUtils.cs
- KoreanLunisolarCalendar.cs
- TableLayoutStyle.cs
- DefaultBindingPropertyAttribute.cs
- HotSpotCollection.cs
- RegistryPermission.cs
- LambdaCompiler.Binary.cs
- FormViewInsertedEventArgs.cs
- PeerInvitationResponse.cs
- ParsedAttributeCollection.cs
- MultiPageTextView.cs
- PermissionListSet.cs
- Positioning.cs
- XXXOnTypeBuilderInstantiation.cs
- UpdateDelegates.Generated.cs
- RadioButton.cs
- PolicyManager.cs
- TextSelectionProcessor.cs
- RemotingAttributes.cs
- BitmapEffectDrawingContextState.cs
- ResourceManager.cs
- DetailsViewDeleteEventArgs.cs
- EmptyStringExpandableObjectConverter.cs
- SendKeys.cs
- TypeSystem.cs
- EntityTypeEmitter.cs
- DataErrorValidationRule.cs
- HttpApplicationFactory.cs
- AccessDataSourceView.cs
- DetailsViewDeleteEventArgs.cs
- XmlSerializerObjectSerializer.cs
- HttpServerVarsCollection.cs
- Int32Animation.cs
- AmbiguousMatchException.cs
- TdsRecordBufferSetter.cs
- ScriptingProfileServiceSection.cs
- BitmapPalette.cs
- ListControl.cs
- SafeNativeMethods.cs
- SimpleApplicationHost.cs
- IdentityReference.cs
- CursorEditor.cs
- ReadOnlyObservableCollection.cs
- CheckPair.cs
- GetParentChain.cs
- PerformanceCounterPermissionAttribute.cs
- DiagnosticTrace.cs
- RemoteCryptoDecryptRequest.cs
- ComponentRenameEvent.cs
- DodSequenceMerge.cs
- WsatAdminException.cs
- SHA1Managed.cs
- SafeHandles.cs
- TreeWalker.cs
- AttributeUsageAttribute.cs
- DynamicControlParameter.cs
- WorkflowDefinitionDispenser.cs
- AccessDataSource.cs
- ListCollectionView.cs
- Keywords.cs
- Internal.cs
- InvokePattern.cs
- ConfigurationPermission.cs
- StaticExtensionConverter.cs
- ResetableIterator.cs
- FilterQueryOptionExpression.cs
- TextPointer.cs
- TriggerActionCollection.cs