Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Xml / System / Xml / XPath / Internal / DescendantBaseQuery.cs / 1 / DescendantBaseQuery.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;
internal abstract class DescendantBaseQuery : BaseAxisQuery {
protected bool matchSelf;
protected bool abbrAxis;
public DescendantBaseQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type, bool matchSelf, bool abbrAxis) : base(qyParent, Name, Prefix, Type) {
this.matchSelf = matchSelf;
this.abbrAxis = abbrAxis;
}
public DescendantBaseQuery(DescendantBaseQuery other) : base(other) {
this.matchSelf = other.matchSelf;
this.abbrAxis = other.abbrAxis;
}
public override XPathNavigator MatchNode(XPathNavigator context) {
if (context != null) {
if (!abbrAxis) {
throw XPathException.Create(Res.Xp_InvalidPattern);
}
XPathNavigator result = null;
if (matches(context)) {
if (matchSelf) {
if ((result = qyInput.MatchNode(context)) != null) {
return result;
}
}
XPathNavigator anc = context.Clone();
while (anc.MoveToParent()) {
if ((result = qyInput.MatchNode(anc)) != null) {
return result;
}
}
}
}
return null;
}
public override void PrintQuery(XmlWriter w) {
w.WriteStartElement(this.GetType().Name);
if (matchSelf) {
w.WriteAttributeString("self", "yes");
}
if (NameTest) {
w.WriteAttributeString("name", Prefix.Length != 0 ? Prefix + ':' + Name : Name);
}
if (TypeTest != XPathNodeType.Element) {
w.WriteAttributeString("nodeType", TypeTest.ToString());
}
qyInput.PrintQuery(w);
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;
internal abstract class DescendantBaseQuery : BaseAxisQuery {
protected bool matchSelf;
protected bool abbrAxis;
public DescendantBaseQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type, bool matchSelf, bool abbrAxis) : base(qyParent, Name, Prefix, Type) {
this.matchSelf = matchSelf;
this.abbrAxis = abbrAxis;
}
public DescendantBaseQuery(DescendantBaseQuery other) : base(other) {
this.matchSelf = other.matchSelf;
this.abbrAxis = other.abbrAxis;
}
public override XPathNavigator MatchNode(XPathNavigator context) {
if (context != null) {
if (!abbrAxis) {
throw XPathException.Create(Res.Xp_InvalidPattern);
}
XPathNavigator result = null;
if (matches(context)) {
if (matchSelf) {
if ((result = qyInput.MatchNode(context)) != null) {
return result;
}
}
XPathNavigator anc = context.Clone();
while (anc.MoveToParent()) {
if ((result = qyInput.MatchNode(anc)) != null) {
return result;
}
}
}
}
return null;
}
public override void PrintQuery(XmlWriter w) {
w.WriteStartElement(this.GetType().Name);
if (matchSelf) {
w.WriteAttributeString("self", "yes");
}
if (NameTest) {
w.WriteAttributeString("name", Prefix.Length != 0 ? Prefix + ':' + Name : Name);
}
if (TypeTest != XPathNodeType.Element) {
w.WriteAttributeString("nodeType", TypeTest.ToString());
}
qyInput.PrintQuery(w);
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
- SqlServer2KCompatibilityCheck.cs
- VectorCollection.cs
- DesignerLoader.cs
- TextChange.cs
- PageBuildProvider.cs
- BlockingCollection.cs
- JsonDeserializer.cs
- StyleTypedPropertyAttribute.cs
- Cast.cs
- Timer.cs
- BitmapImage.cs
- CreatingCookieEventArgs.cs
- TabControl.cs
- WeakHashtable.cs
- ToolStripRenderEventArgs.cs
- AppDomainShutdownMonitor.cs
- HyperLinkField.cs
- ReadOnlyObservableCollection.cs
- AlternateView.cs
- UpdateManifestForBrowserApplication.cs
- PropertyGeneratedEventArgs.cs
- TabRenderer.cs
- RequestDescription.cs
- DynamicPhysicalDiscoSearcher.cs
- CodeTypeParameterCollection.cs
- _DigestClient.cs
- OleDbDataReader.cs
- EntityDesignerUtils.cs
- ButtonBaseAutomationPeer.cs
- ContainerVisual.cs
- WebEventCodes.cs
- PersonalizablePropertyEntry.cs
- RoutingBehavior.cs
- CLRBindingWorker.cs
- SessionParameter.cs
- CellPartitioner.cs
- LogSwitch.cs
- ColorTransformHelper.cs
- RemotingException.cs
- SingleBodyParameterMessageFormatter.cs
- MasterPage.cs
- FixUpCollection.cs
- BulletedListEventArgs.cs
- FontUnit.cs
- MasterPageCodeDomTreeGenerator.cs
- KoreanCalendar.cs
- FullTextBreakpoint.cs
- Expander.cs
- ValidationResult.cs
- SupportsPreviewControlAttribute.cs
- PartitionedStream.cs
- UrlMappingsSection.cs
- TableCell.cs
- Pts.cs
- SqlInternalConnectionTds.cs
- Util.cs
- PersonalizableTypeEntry.cs
- Int16Converter.cs
- ConfigXmlElement.cs
- MemoryRecordBuffer.cs
- StringExpressionSet.cs
- XmlHelper.cs
- BufferedOutputAsyncStream.cs
- TransactionBridge.cs
- TokenBasedSet.cs
- QilNode.cs
- WmlValidatorAdapter.cs
- TreeChangeInfo.cs
- Parameter.cs
- AutoScrollHelper.cs
- Scripts.cs
- CaseInsensitiveComparer.cs
- SafeArrayTypeMismatchException.cs
- ConnectionManagementElement.cs
- TextEditorMouse.cs
- BitConverter.cs
- TextRangeBase.cs
- VectorValueSerializer.cs
- Compiler.cs
- QilXmlWriter.cs
- XmlChildNodes.cs
- OleStrCAMarshaler.cs
- Keywords.cs
- DbConnectionPoolCounters.cs
- Point3D.cs
- EventRouteFactory.cs
- CodeMemberEvent.cs
- infer.cs
- ObjectDataSource.cs
- PagedControl.cs
- ValueProviderWrapper.cs
- DataSourceSelectArguments.cs
- ConnectionsZoneDesigner.cs
- WebPartsSection.cs
- PipelineModuleStepContainer.cs
- ApplicationManager.cs
- EditorPart.cs
- designeractionbehavior.cs
- _NegoStream.cs
- DataTableCollection.cs