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 / QIL / QilExpression.cs / 1 / QilExpression.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.Collections.Generic; using System.Xml.Xsl.Runtime; namespace System.Xml.Xsl.Qil { ////// The CQR implementation of QilExpression. /// ////// internal class QilExpression : QilNode { private QilFactory factory; private QilNode isDebug; private QilNode defWSet; private QilNode wsRules; private QilNode gloVars; private QilNode gloParams; private QilNode earlBnd; private QilNode funList; private QilNode rootNod; //----------------------------------------------- // Constructors //----------------------------------------------- ///QilExpression is the XML Query Intermediate Language invented by Michael Brundage and Chris Suver. /// QilExpression is an intermediate representation (IR) for all XML query and view languages. QilExpression is /// designed for optimization, composition with virtual XML views, translation into other forms, /// and direct execution. See also the QIL specification.
////// Construct QIL from a rooted graph of QilNodes with a new factory. /// public QilExpression(QilNodeType nodeType, QilNode root) : this(nodeType, root, new QilFactory()) { } ////// Construct QIL from a rooted graph of QilNodes with a specific factory. /// public QilExpression(QilNodeType nodeType, QilNode root, QilFactory factory) : base(nodeType) { this.factory = factory; this.isDebug = factory.False(); XmlWriterSettings settings = new XmlWriterSettings(); settings.ConformanceLevel = ConformanceLevel.Auto; this.defWSet = factory.LiteralObject(settings); this.wsRules = factory.LiteralObject(new List()); this.gloVars = factory.GlobalVariableList(); this.gloParams = factory.GlobalParameterList(); this.earlBnd = factory.LiteralObject(new List ()); this.funList = factory.FunctionList(); this.rootNod = root; } //----------------------------------------------- // IList methods -- override //----------------------------------------------- public override int Count { get { return 8; } } public override QilNode this[int index] { get { switch (index) { case 0: return this.isDebug; case 1: return this.defWSet; case 2: return this.wsRules; case 3: return this.gloParams; case 4: return this.gloVars; case 5: return this.earlBnd; case 6: return this.funList; case 7: return this.rootNod; default: throw new IndexOutOfRangeException(); } } set { switch (index) { case 0: this.isDebug = value; break; case 1: this.defWSet = value; break; case 2: this.wsRules = value; break; case 3: this.gloParams = value; break; case 4: this.gloVars = value; break; case 5: this.earlBnd = value; break; case 6: this.funList = value; break; case 7: this.rootNod = value; break; default: throw new IndexOutOfRangeException(); } } } //----------------------------------------------- // QilExpression methods //----------------------------------------------- /// /// QilFactory to be used in constructing nodes in this graph. /// public QilFactory Factory { get { return this.factory; } set { this.factory = value; } } ////// True if this expression contains debugging information. /// public bool IsDebug { get { return this.isDebug.NodeType == QilNodeType.True; } set { this.isDebug = value ? this.factory.True() : this.factory.False(); } } ////// Default serialization options that will be used if the user does not supply a writer at execution time. /// public XmlWriterSettings DefaultWriterSettings { get { return (XmlWriterSettings) ((QilLiteral) this.defWSet).Value; } set { value.ReadOnly = true; ((QilLiteral) this.defWSet).Value = value; } } ////// Xslt whitespace strip/preserve rules. /// public IListWhitespaceRules { get { return (IList ) ((QilLiteral) this.wsRules).Value; } set { ((QilLiteral) this.wsRules).Value = value; } } /// /// External parameters. /// public QilList GlobalParameterList { get { return (QilList) this.gloParams; } set { this.gloParams = value; } } ////// Global variables. /// public QilList GlobalVariableList { get { return (QilList) this.gloVars; } set { this.gloVars = value; } } ////// Early bound function objects. /// public IListEarlyBoundTypes { get { return (IList ) ((QilLiteral) this.earlBnd).Value; } set { ((QilLiteral) this.earlBnd).Value = value; } } /// /// Function definitions. /// public QilList FunctionList { get { return (QilList) this.funList; } set { this.funList = value; } } ////// The root node of the QilExpression graph /// public QilNode Root { get { return this.rootNod; } set { this.rootNod = value; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.Collections.Generic; using System.Xml.Xsl.Runtime; namespace System.Xml.Xsl.Qil { ////// The CQR implementation of QilExpression. /// ////// internal class QilExpression : QilNode { private QilFactory factory; private QilNode isDebug; private QilNode defWSet; private QilNode wsRules; private QilNode gloVars; private QilNode gloParams; private QilNode earlBnd; private QilNode funList; private QilNode rootNod; //----------------------------------------------- // Constructors //----------------------------------------------- ///QilExpression is the XML Query Intermediate Language invented by Michael Brundage and Chris Suver. /// QilExpression is an intermediate representation (IR) for all XML query and view languages. QilExpression is /// designed for optimization, composition with virtual XML views, translation into other forms, /// and direct execution. See also the QIL specification.
////// Construct QIL from a rooted graph of QilNodes with a new factory. /// public QilExpression(QilNodeType nodeType, QilNode root) : this(nodeType, root, new QilFactory()) { } ////// Construct QIL from a rooted graph of QilNodes with a specific factory. /// public QilExpression(QilNodeType nodeType, QilNode root, QilFactory factory) : base(nodeType) { this.factory = factory; this.isDebug = factory.False(); XmlWriterSettings settings = new XmlWriterSettings(); settings.ConformanceLevel = ConformanceLevel.Auto; this.defWSet = factory.LiteralObject(settings); this.wsRules = factory.LiteralObject(new List()); this.gloVars = factory.GlobalVariableList(); this.gloParams = factory.GlobalParameterList(); this.earlBnd = factory.LiteralObject(new List ()); this.funList = factory.FunctionList(); this.rootNod = root; } //----------------------------------------------- // IList methods -- override //----------------------------------------------- public override int Count { get { return 8; } } public override QilNode this[int index] { get { switch (index) { case 0: return this.isDebug; case 1: return this.defWSet; case 2: return this.wsRules; case 3: return this.gloParams; case 4: return this.gloVars; case 5: return this.earlBnd; case 6: return this.funList; case 7: return this.rootNod; default: throw new IndexOutOfRangeException(); } } set { switch (index) { case 0: this.isDebug = value; break; case 1: this.defWSet = value; break; case 2: this.wsRules = value; break; case 3: this.gloParams = value; break; case 4: this.gloVars = value; break; case 5: this.earlBnd = value; break; case 6: this.funList = value; break; case 7: this.rootNod = value; break; default: throw new IndexOutOfRangeException(); } } } //----------------------------------------------- // QilExpression methods //----------------------------------------------- /// /// QilFactory to be used in constructing nodes in this graph. /// public QilFactory Factory { get { return this.factory; } set { this.factory = value; } } ////// True if this expression contains debugging information. /// public bool IsDebug { get { return this.isDebug.NodeType == QilNodeType.True; } set { this.isDebug = value ? this.factory.True() : this.factory.False(); } } ////// Default serialization options that will be used if the user does not supply a writer at execution time. /// public XmlWriterSettings DefaultWriterSettings { get { return (XmlWriterSettings) ((QilLiteral) this.defWSet).Value; } set { value.ReadOnly = true; ((QilLiteral) this.defWSet).Value = value; } } ////// Xslt whitespace strip/preserve rules. /// public IListWhitespaceRules { get { return (IList ) ((QilLiteral) this.wsRules).Value; } set { ((QilLiteral) this.wsRules).Value = value; } } /// /// External parameters. /// public QilList GlobalParameterList { get { return (QilList) this.gloParams; } set { this.gloParams = value; } } ////// Global variables. /// public QilList GlobalVariableList { get { return (QilList) this.gloVars; } set { this.gloVars = value; } } ////// Early bound function objects. /// public IListEarlyBoundTypes { get { return (IList ) ((QilLiteral) this.earlBnd).Value; } set { ((QilLiteral) this.earlBnd).Value = value; } } /// /// Function definitions. /// public QilList FunctionList { get { return (QilList) this.funList; } set { this.funList = value; } } ////// The root node of the QilExpression graph /// public QilNode Root { get { return this.rootNod; } set { this.rootNod = value; } } } } // 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
- DetailsViewUpdateEventArgs.cs
- MessageDirection.cs
- DynamicMethod.cs
- ChannelSinkStacks.cs
- DiagnosticTraceSource.cs
- webeventbuffer.cs
- InputBuffer.cs
- GridView.cs
- AdornerDecorator.cs
- ListViewDeletedEventArgs.cs
- ImageFormat.cs
- SocketException.cs
- EmptyControlCollection.cs
- NullRuntimeConfig.cs
- QfeChecker.cs
- Component.cs
- Axis.cs
- AssemblyName.cs
- RuntimeConfig.cs
- _ProxyChain.cs
- RowsCopiedEventArgs.cs
- TabControlEvent.cs
- EntityClientCacheEntry.cs
- TextViewDesigner.cs
- AccessText.cs
- WebBrowserBase.cs
- GenericArgumentsUpdater.cs
- SqlTriggerAttribute.cs
- WmlTextViewAdapter.cs
- IApplicationTrustManager.cs
- XmlSchemaSimpleTypeList.cs
- MemoryPressure.cs
- EndpointInstanceProvider.cs
- PeerCollaborationPermission.cs
- GridPattern.cs
- Pen.cs
- InheritanceRules.cs
- DefaultEventAttribute.cs
- RtfControls.cs
- KnownAssemblyEntry.cs
- TreeNodeSelectionProcessor.cs
- TextElementEnumerator.cs
- DataGridViewTextBoxColumn.cs
- ScriptingScriptResourceHandlerSection.cs
- AccessedThroughPropertyAttribute.cs
- _AcceptOverlappedAsyncResult.cs
- PropertyValueUIItem.cs
- ScalarConstant.cs
- MobileUITypeEditor.cs
- XmlName.cs
- ProtocolsConfiguration.cs
- FilteredAttributeCollection.cs
- HierarchicalDataSourceControl.cs
- IgnoreSectionHandler.cs
- ComplusEndpointConfigContainer.cs
- WS2007HttpBindingCollectionElement.cs
- CapabilitiesRule.cs
- ItemList.cs
- QueryOpcode.cs
- ToolBarDesigner.cs
- GPPOINT.cs
- WebHostScriptMappingsInstallComponent.cs
- UserControl.cs
- PrtCap_Public_Simple.cs
- JournalNavigationScope.cs
- FocusManager.cs
- TypedRowGenerator.cs
- ListenerConnectionModeReader.cs
- ClickablePoint.cs
- ObjectParameterCollection.cs
- OSFeature.cs
- RNGCryptoServiceProvider.cs
- EntityDataSourceView.cs
- ValidationHelpers.cs
- Soap12ProtocolReflector.cs
- StylusEventArgs.cs
- TypeElement.cs
- XmlRawWriterWrapper.cs
- ConnectorSelectionGlyph.cs
- TypeListConverter.cs
- FormatterServicesNoSerializableCheck.cs
- TableRowCollection.cs
- PrimitiveXmlSerializers.cs
- MouseEvent.cs
- DesignTimeParseData.cs
- ResXBuildProvider.cs
- AnimationLayer.cs
- PageCatalogPartDesigner.cs
- AbstractExpressions.cs
- TextParagraphCache.cs
- RadioButton.cs
- SQLBinary.cs
- EventInfo.cs
- RightsManagementSuppressedStream.cs
- ColorTranslator.cs
- Converter.cs
- DeferredSelectedIndexReference.cs
- TraceUtility.cs
- FactoryMaker.cs
- ScriptingAuthenticationServiceSection.cs