Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / VariableQuery.cs / 1 / VariableQuery.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; using System.Globalization; using System.Xml.Xsl; internal sealed class VariableQuery : ExtensionQuery { private IXsltContextVariable variable; public VariableQuery(string name, string prefix) : base(prefix, name) {} private VariableQuery(VariableQuery other) : base(other) { this.variable = other.variable; } public override void SetXsltContext(XsltContext context) { if (context == null) { throw XPathException.Create(Res.Xp_NoContext); } if (this.xsltContext != context) { xsltContext = context; variable = xsltContext.ResolveVariable(prefix, name); // Since null is allowed for ResolveFunction, allow it for ResolveVariable as well if (variable == null) { throw XPathException.Create(Res.Xp_UndefVar, QName); } } } public override object Evaluate(XPathNodeIterator nodeIterator) { if (xsltContext == null) { throw XPathException.Create(Res.Xp_NoContext); } return ProcessResult(variable.Evaluate(xsltContext)); } public override XPathResultType StaticType { get { if (variable != null) { // Temp. fix to overcome dependency on static type return GetXPathType(Evaluate(null)); } XPathResultType result = variable != null ? variable.VariableType : XPathResultType.Any; if (result == XPathResultType.Error) { // In v.1 we confused Error & Any so now for backward compatibility we should allow users to return any of them. result = XPathResultType.Any; } return result; } } public override XPathNodeIterator Clone() { return new VariableQuery(this); } public override void PrintQuery(XmlWriter w) { w.WriteStartElement(this.GetType().Name); w.WriteAttributeString("name", prefix.Length != 0 ? prefix + ':' + name : name); w.WriteEndElement(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; using System.Globalization; using System.Xml.Xsl; internal sealed class VariableQuery : ExtensionQuery { private IXsltContextVariable variable; public VariableQuery(string name, string prefix) : base(prefix, name) {} private VariableQuery(VariableQuery other) : base(other) { this.variable = other.variable; } public override void SetXsltContext(XsltContext context) { if (context == null) { throw XPathException.Create(Res.Xp_NoContext); } if (this.xsltContext != context) { xsltContext = context; variable = xsltContext.ResolveVariable(prefix, name); // Since null is allowed for ResolveFunction, allow it for ResolveVariable as well if (variable == null) { throw XPathException.Create(Res.Xp_UndefVar, QName); } } } public override object Evaluate(XPathNodeIterator nodeIterator) { if (xsltContext == null) { throw XPathException.Create(Res.Xp_NoContext); } return ProcessResult(variable.Evaluate(xsltContext)); } public override XPathResultType StaticType { get { if (variable != null) { // Temp. fix to overcome dependency on static type return GetXPathType(Evaluate(null)); } XPathResultType result = variable != null ? variable.VariableType : XPathResultType.Any; if (result == XPathResultType.Error) { // In v.1 we confused Error & Any so now for backward compatibility we should allow users to return any of them. result = XPathResultType.Any; } return result; } } public override XPathNodeIterator Clone() { return new VariableQuery(this); } public override void PrintQuery(XmlWriter w) { w.WriteStartElement(this.GetType().Name); w.WriteAttributeString("name", prefix.Length != 0 ? prefix + ':' + name : name); w.WriteEndElement(); } } } // 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
- LockedAssemblyCache.cs
- StringBuilder.cs
- GenerateScriptTypeAttribute.cs
- ForceCopyBuildProvider.cs
- AnnotationObservableCollection.cs
- CompilerLocalReference.cs
- PageBuildProvider.cs
- BaseParser.cs
- VarRemapper.cs
- SchemaImporterExtensionElement.cs
- DescendentsWalkerBase.cs
- EntityTypeEmitter.cs
- CriticalExceptions.cs
- CodeSubDirectory.cs
- TemplatedMailWebEventProvider.cs
- DecimalConverter.cs
- documentation.cs
- ZipIOLocalFileHeader.cs
- ViewEventArgs.cs
- ArrayTypeMismatchException.cs
- CompilationUtil.cs
- HashCodeCombiner.cs
- SQLDateTime.cs
- DataControlCommands.cs
- MobilePage.cs
- AutomationProperty.cs
- PeerTransportListenAddressValidatorAttribute.cs
- EndPoint.cs
- XsdDateTime.cs
- ScaleTransform.cs
- SignedXmlDebugLog.cs
- FileIOPermission.cs
- TraceSource.cs
- SemanticResultKey.cs
- EventPrivateKey.cs
- TypePropertyEditor.cs
- UITypeEditor.cs
- UnsafeNativeMethodsMilCoreApi.cs
- SecurityTokenValidationException.cs
- OrderingQueryOperator.cs
- RequestQueryProcessor.cs
- TraceContext.cs
- MenuBindingsEditor.cs
- WinInet.cs
- Event.cs
- InternalRelationshipCollection.cs
- MetafileHeaderWmf.cs
- SelectManyQueryOperator.cs
- LambdaCompiler.Statements.cs
- HttpCookiesSection.cs
- TypedTableHandler.cs
- WriteFileContext.cs
- FunctionNode.cs
- SoapObjectWriter.cs
- ArrayExtension.cs
- StructuralObject.cs
- DataViewListener.cs
- PrimitiveSchema.cs
- DocumentXPathNavigator.cs
- XmlAnyAttributeAttribute.cs
- FacetDescriptionElement.cs
- ConstructorNeedsTagAttribute.cs
- ClientSection.cs
- MouseEvent.cs
- IpcClientChannel.cs
- ImageAnimator.cs
- DataGridViewRowCancelEventArgs.cs
- System.Data.OracleClient_BID.cs
- ExpressionBindingCollection.cs
- UnicodeEncoding.cs
- SamlConditions.cs
- HostingPreferredMapPath.cs
- RegistrySecurity.cs
- DesigntimeLicenseContextSerializer.cs
- SpeechDetectedEventArgs.cs
- ExclusiveHandleList.cs
- FilterException.cs
- ServiceDefaults.cs
- DataServiceResponse.cs
- RoleManagerSection.cs
- PageSetupDialog.cs
- IndexerNameAttribute.cs
- DiscoveryServiceExtension.cs
- DelegatingTypeDescriptionProvider.cs
- ThreadAttributes.cs
- ObjectKeyFrameCollection.cs
- BmpBitmapEncoder.cs
- CompiledQuery.cs
- CancelEventArgs.cs
- Schema.cs
- ConfigurationLocationCollection.cs
- SettingsAttributes.cs
- baseaxisquery.cs
- ManagedFilter.cs
- DesignerOptionService.cs
- XmlSequenceWriter.cs
- ToolStripSeparatorRenderEventArgs.cs
- HttpDictionary.cs
- FixedDSBuilder.cs
- precedingsibling.cs